Veritabanı odaklı uygulama geliştir iken, bazen gerçekleşen değişleri takip edilmesi gerekir. İşte o noktada bir veritabanı nesnesi olan tetikleyicileri(Trigger) kullanırız. Bu özelikle bir çok veritabanında olduğunu gibi MySql 5.0 versiyonunda karşımıza çıkmaktadır.
Mysql ‘de trigger nesneleri iki çeşit olarak bulunmaktadır.
- Veritabanında nesneler üzeride yapılan değişikler için(Drop,Create,Alter),
- Tablolar içersinde bulundukları kayıtlar, içerisinde yalpan değişler (Insert,Update,Delete)için kullanır.
Bu yazımda tablolar üzerine deki değişimleri inceleyebileceğimizi tetikleyici(trigger) inceleceğim.
Bu uygulamazda insert trigger kullanacağız. İlk olarak uygulama içerisinde kullanacağımız tabloları oluşturalım. Kayıtlar üzerinde yapan değişimleri takip eden bir trigger geliştirelim.
Product tablosu
|
CREATE TABLE `product` ( |
State tablosu
|
CREATE TABLE `state` ( |
Şimdi uygulayacağımız senaryodan bahsetmek istiyorum.Product(ürün) tablosuna her kayıt eklediğinde State(Durum) tablosuna product ile ilgili ID ve kayıt tarihi eklenmektedir.Aslında .net de sihirbazla yaptığımız cache sistemine benzeye bir olay hazırlamaktayız.
CREATE TRIGGER [TRIGGER adı] [hangi olayda çalışacağı | insert | update | delete ]
ON [izlenecek olan tablo adı ] FOR EACH ROW [ tabloda bulunan değişikleri alabilceğiz degşikeni tanımladığı yer]
Yukarıdaki yazım şekline uyarak kullanacağımız trigger hazırlayalım.
|
Create TRIGGER trg_Product_int |
Hazırlamış olduğumuz insert trigger’dır. Yani kayıt eklediğinde çalışan.
Öneri :
Hazırlamış olduğumuz veritabanı nesnelerinde yukarıdaki örnekte de olduğu gibi nesnenin ne olduğu anlatan kısaltmalar koymayı unutmayın
Tetikleyicileri konu alan yazımız burada sonları iken konu ile ilgili sorunlarını iletişim bölümünde iletebilirsiniz.

