Trigger'lar bir nevi programlamadaki Event Listener'lar gibidir. Örnek verelim: TABLO1 adında bir tablomuz var ve bu tablonun satırları üzerinde yapılan değişiklikleri (Update işlemlerini) loglamak istiyoruz. Bunun için bir Update trigger yazıp değişen veriyi, eski halini, hangi tarihte değiştiğini kendi belirlediğimiz bir tabloya insert edebiliriz.
Tablomuzu oluşturalım:
CREATE TABLE TABLO1
(user_id int, department_code int)
-------
Log tablomuzu oluşturalım
CREATE TABLE AUDIT_TABLO1
(user_id int, old_department_code int, new_department_code int, entry_date date)
-------
Tablolarımızı oluşturduktan sonra gelelim Trigger'a:
CREATE TRIGGER trg_tablo1
AFTER UPDATE
ON Tablo1
FOR EACH ROW
INSERT INTO AUDIT_TABLO1
(user_id, old_department_code, new_department_code, entry_date)
VALUES
(:new.user_id, :old.department_code, :new.department_code, sysdate)
Bu trigger ile log tablomuzda hem önceki hem update işleminden sonraki departman kodunu tutabiliriz. Bu şekilde hatalı update edilmiş kayıtların geri dönüşü için kolay bi fırsat yaratmış oluruz. ;)
Hiç yorum yok:
Yorum Gönder