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..
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