BEFORE INSERT TRIGGER, insert işlemi ile eş zamanlı olarak Oracle bu tetikleyiciyi çalıştırır.
Oracle/PLSQL de Before İnsert Trigger oluşturma:
CREATE [ OR REPLACE ] TRIGGER trigger_adi BEFORE INSERT ON tablo_adi [ FOR EACH ROW ] DECLARE -- değişken tanımları BEGIN -- trigger kodu EXCEPTION WHEN -- hata oluşması durumunda yapılacak işlem/ler. END;
Parametre ve Argümanlar
OR REPLACE :Opsiyoneldir. Bu parametre ile, tetikleyici daha önceden mevcut ise güncellenir, mevcut değil ise oluşturulur. Aksi takdirde mevcut tetikleyici drop edilmelidir. Edilmez ise, aynı isimle birden fazla nesne oluşturulamayağı için ORA-00955: name is already used by an existing object (ad var olan bir nesne tarafından kullanılıyor) hatası alınır.
trigger_adi : Oluşturulan tetikleyicinin adı.
BEFORE INSERT : Tetikleyicinin insert işleminden önce çalışacağını belirtir.
tablo_adi : Tetikleyicinin dinleyeceği tabloyu belirtir. Belirtilen tabloya kayıt yapılırken tetikleyici devreye girer ve kodda belirtilen işlemleri gerçekleştirir.
NOT:
BEFOR INSERT tetikleyicisinde, eklenen değerler :NEW.KOLON_ADI şeklinde ifade edilir.
ÖRNEK
Tbl_ogrenci tablosuna ekleme yapılınca, ekleyen_kullanici ve ekleme_tarihi kolonlarını before insert trigger kullanarak dolduralım.
Kullanacağımız örnek tablomuzu oluşturuyoruz;
CREATE TABLE tbl_ogrenci( ogrencino number(5), adi varchar2(60), soyadi varchar2(60), ekleme_tarihi date, ekleyen_kullanici varchar2(50) );
BEFORE INSERT trigger kodunu yazıyoruz
CREATE OR REPLACE TRIGGER before_insert_ tbl_ogrenci BEFORE INSERT ON tbl_ogrenci FOR EACH ROW DECLARE BEGIN -- İnsert eden kullanıcıyı ilgili kolona yazalım :NEW.ekleyen_kullanici := user; --İnsert tarihini ilgili kolona yazalım :NEW.ekleme_tarihi := sysdate; END;