Trigger oluşturmak için ilk önce trigger adını ve ne zaman tetikleneceğini belirtmemiz gerekir.
DELIMITER ;; CREATE|REPLACE TRIGGER trigger_adi BEFORE|AFTER INSERT|UPDATE|DELETE [OF sutun_adi] ON tablo_adi FOR EACH ROW BEGIN IF OLD.sutun_1 = NEW.sutun_1 THEN # sutun_1 eski değeri sutun_1 yeni değerine eşitse ENDIF; END;; DELIMITER ;
Örneğimizi satır satır inceleyelim.
İlk satırda DELIMITER;; ibaresi kullandık. Bunun kodunuza ya da trigger oluşturmanıza bir etkisi yok. Bunun amacı sorguyu gönderen ön tanımlı ; değerini ;; ile değiştirmek. Trigger içerisinde kullanacağımız ; ibarelerinin işleme alınmamasını, toplu olarak tetikleyici komutuna yazılmasını sağlıyoruz.
CREATE TRIGGER ya da REPLACE TRIGGER trigger oluşturmamız için ya da varolan bir trigger’ı düzenlememiz için gereken kod. Bu koddan sonra trigger adını yazıyoruz.
BEFORE önce çalışacağını AFTER sonra çalışacağını belirtiyor. INSERT kayıt eklerken, UPDATE kayıt güncellerken, DELETE kayıt silerken çalışacağını belirtiyor.
Yani BEFORE INSERT kayıt eklemeden önce (eklenecek kayıtları düzenlememizi sağlar) AFTER UPDATE kayıt güncellendikten sonra çalışmasını sağlar.
ON sutun_adi şeklinde tablodaki sütunlardan birinin adını verirseniz, o sütunda bir değişiklik olduğu zaman tetiklenir. Örneğin id | baslik | icerik sütunlarımız var, OF baslik seklinde değer girersek ve sadece icerik sütununu düzenlersek tetiklenmez.
ON belirtecinden sonra tablo adı girilir.
FOR EACH ROW BEGIN *** END;; her değişen ya da eklenen satır için çalıştırılacak kodları belirtir. *** olan yere eklemek istediğiniz kodlar gelir.
Tabloda yapılan değişkenlere erişmek için eski değerler için OLD yeni değerler için NEW belirteçi kullanılır. id | baslik | icerik tablosundaki eski baslik değerine ulaşmak için OLD.baslik, yeni baslik değerine ulaşmak için NEW.baslik kullanılır.
Bir kayıt eklenirken yeni eklenen verilere ulaşabilirsiniz (NEW), bir kayıt güncellenirken hem eski verilere (OLD) hem de yeni verilere (NEW) ulaşabilirsiniz, bir kayıt silinirken de eski verilere (OLD) ulaşabilirsiniz.
2014 © Web Fikirleri - Her Hakkı Saklıdır.