Trigger da after insert ile for insert arasındaki fark nedir?

By | December 13, 2023

Merhaba herkese,

Yaklaşık 10 sene evvel trigger konusunu anlatmışım ve bu hafta bir soru gelmiş. Sorunun cevabı için bir yazı yazmak istedim.

Soru: Trigger yapısında after insert ile for insert arasındaki fark nedir?

Cevaba geçmeden önce eski konuyu okumayanlar için trigger ne olduğundan bahsedeyim.

“TRIGGER” yapısı, veritabanlarında belirli bir olay gerçekleştiğinde otomatik olarak çalışan bir dizi SQL ifadesini içeren bir veritabanı nesnesidir. Bu trigger’lar, genellikle veritabanında gerçekleşen belirli olayları (örneğin, bir tabloya veri eklenmesi, güncellenmesi veya silinmesi gibi) takip etmek ve bu olaylara yanıt olarak belirli işlemleri gerçekleştirmek için kullanılır.

Microsoft SQL Server (MSSQL) veritabanı yönetim sistemi, AFTER INSERT ve FOR INSERT gibi trigger türlerini destekler. Ancak, SQL Server’da FOR INSERT ifadesi yerine genellikle AFTER INSERT kullanılır. FOR INSERT ifadesi genellikle Sysbase’den kalma bir ifade türü olup genellikle MYSQL de kullanılır.

AFTER INSERT ve FOR INSERT ifadeleri, trigger’ların hangi zamanlarda çalışacağını belirlemek için kullanılır.

  1. AFTER INSERT:
    • AFTER INSERT trigger, yeni veriler bir tabloya eklendikten sonra çalışır.
    • Trigger, ekleme işlemi tamamlandıktan sonra yürütülür, bu nedenle trigger içinde yapılan işlemler, yeni veriler tabloya eklendikten sonra gerçekleşir.
  2. FOR INSERT:
    • FOR INSERT ifadesi, trigger’ın sadece bir INSERT işlemi gerçekleştiğinde çalışacağını belirtir.
    • Yani, birden çok satırın eklendiği bir INSERT ifadesi çalıştırıldığında, trigger yalnızca bir kere tetiklenir.

Özetle; AFTER INSERT trigger, ekleme işlemi tamamlandıktan sonra çalışırken, FOR INSERT trigger, her bir INSERT işlemi için çalışır. FOR INSERT kullanımı, genellikle tek satır ekleme işlemleri üzerinde daha spesifik kontrol sağlamak amacıyla tercih edilebilir.

Leave a Reply

Your email address will not be published. Required fields are marked *