veritabanında bir tabloya veri girişi/değişikliği/silinmesinden önce veya sonra veritabanının yapmasını istediğiniz işlem bütününün adıdır.
oracle için yazılmış trigger örneği;
CREATE OR REPLACE TRIGGER TRg_KIMLIKLOG -- Triggerimizin Adı
AFTER DELETE OR UPDATE
ON DBUSER.KIMLIK // hangi tabloya işlem yapıldığında tetikleyecek
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF UPDATING THEN // eğer kimlik tablosunda kayıt değiştiriliyorsa kimlik_log tablosuna değişmeden önceki verileri yaz.
INSERT INTO DBUSER.KIMLIK_LOG
(
ADI,
SOYADI,
ADRESI,
NOTU,
ISLEM,
ISLEMYAPANKULLANICI,
ISLEMTARIHI
)
VALUES
(
:OLD.ADI,
:OLD.SOYADI,
:OLD.ADRESI,
:OLD.NOTU,
'Degistirildi',
USER,
SYSDATE
);
ELSIF DELETING THEN // eğer kimlik tablosunda kayıt siliniyorsa kimlik_log tablosuna değişmeden önceki verileri yaz.
INSERT INTO DBUSER.KIMLIK_LOG
(
ADI,
SOYADI,
ADRESI,
NOTU,
ISLEMYAPANKULLANICI,
ISLEMTARIHI
)
VALUES
(
:OLD.ADI,
:OLD.SOYADI,
:OLD.ADRESI,
:OLD.NOTU,
'Silindi',
USER,
SYSDATE
);
END IF;
END;
6. senesi midir 7. senesimidir belki 8 dir hatırlamıyorum. halen kendini dinleten şarkıdır. bu adamlar nasıl yapılacağını gerçekten biliyorlar. dinleyin dinletin.
Bir trigger olusturarak bir tabloda yapilan degisikligi diger tabloda ayni anda uygulamak amacli yapilir. Pratikliktir, akil dolu bir ozelliktir. Ulkemizde kullanimi pek yaygin degildir.