SQL-Trigger

SQL Trigger - Update, Delete, Insert Örneği


Bu anlatımı bir Facebook grubunda sorulan soru üzerine hazırladım.
(Trigger kodları sayfanın sonunda.)

Öncelikle elimizde iki adet tablo olsun:

Vatandas tablosu : Vatandaşların ad,soyad ve doğum tarihi bilgilerini tutsun.
Degisiklik tablosu : Vatandas tablosunda yapılacak UPDATE, DELETE ve INSERT işlemlerinde oluşacak tetikleme(trigger) sonucu, durum/sonuç bilgisinin saklandığı tablo olsun. Örnek verecek olursak: Bir vatandaş eklendiğinde, Degisiklik tablosunda eklenen vatandaş için aşağıdaki bilgileri tutalım:

Degisiklik tablosu


DNo YapilanDegisiklik DYapanAd DTarih
1 Ad Soyad Eklendi Ad 2015-05-21

Bu tabloda;


DNo : Değişiklik no = Vatandaş no
YapilanDegisiklik : Vatandaş adı soyadı + değişiklik türü(eklendi,silindi,güncellendi) 
DYapanAd : Değişiklik yapanın adı
DTarih : Değişiklik tarihi


Şimdi bu senaryoyu gerçekleyelim...
Veritabanımızdaki
Vatandas tablomuza birkaç veri girelim..
Vatandas Tablosu










Trigger'ımız aktif olduğu için bu verileri girdiğimizde INSERT durumu tetiklendi. INSERT durumunda değişiklik türümüz 'Eklendi' olacaktır.(Bknz:Trigger kodları) Böylece Degisiklik tablomuzda kayıtlar aşağıdaki şekilde oluştu. 

Degisiklik Tablosu








Şimdi de DELETE durumunu tetikleyelim. Bunun için Vatandas tablomuzdan bir veri silmemiz gerekiyor. VatandasNo'su 3 olan Test2'yi silelim.

Vatandas Tablosu







Silme işleminin tetikleme sonucunu görmek için Degisiklik tablomuza bakalım.

Degisiklik Tablosu










Görüldüğü gibi DNo'su 3 olan vatandaş için "Test2 Test2 Silindi" bilgisi tablomuza yansıdı.

Şimdi bir de UPDATE işlemi yapalım. Bu durumda, Vatandas tablomuzda bir güncelleme yapacağız. Mesela, Test3 Test3 adlı vatandaşın adını soyadını güncelleyerek, Test99 Test999 yapalım.

Vatandas Tablosu








Bu değişikliğin Degisiklik tablomuza yansımasını görelim:


Degisiklik Tablosu











Görüldüğü gibi güncelleme bilgisi tablomuza yansıdı.

Peki bu tetiklemeleri yapmak için gerekli olan trigger'ı nasıl tasarlayacağız ?
Onu da, hemen aşağıda bulabilirsiniz. Bilerek resim koydum ki, yazarak alıştırma yapıp, daha iyi öğrenmiş olun.

İyi çalışmalar...


0 yorum:

Yorum Gönder

Bu yayın hakkında yorumlarınızı belirterek, gidişatımızın şekillendirilmesine katkıda bulunabilirsiniz.
Teşekkürler