PostgreSQL TRIGGER Nedir ?Nasıl Kullanılır?
PostgreSQL TRIGGER Nedir ?Nasıl Kullanılır?, trigger’ın Türkçe karşılığı tetikleyici olarak geçmektedir. Veritabanı sistemlerinde ,bir tabloda belirli olaylar meydana gelmeden ya da geldikten sonra yapılması istenen işlemleri otomatik olarak gerçekleştirilen yapılardır. postgresql trigger function kullanmaktadır.
Tetikleyiciler kullanıcılar tarafından manuel olarak çalıştırılamaz.
Tetikleyiciler , içerisinde yazılan işlemlere göre işlem yapılmadan önce veya yapıldıktan sonra işlemleri gerçekleştirir.
Tetikliyiciler insert,update,delete,create table…. vb gibi işlemlerde kullanılabilir.
Tetikleyiciler ,bulunduğu tabloya gelen dml işlemlerinde performans kaybına neden açar.
Tetikleyiciler , büyük verilerde locklara neden olabilir.
After Trigger: İşlem gerçekleştikten sonra devreye giren tetikleyicilerdir.
Before Trigger: İşlem gerçekleştikten sonra devreye giren tetikleyicidir.
Instead Of Trigger: İşlem gerçekleşeceği sırada kullanılır.
FOR EACH ROW: Yapılan her işlem için yapılır . Örnek olarak 1000 delete yapıldıysa hepsini yazar.
FOR EACH STATEMENT: Yapılan her işlem için tek işlem yapar . Örnek olarak 1000 delete yapıldıysa sadece tekini yazar.
PostgreSQL de trigger tanımlamak için ilk olarak yapılmak istenen işlemi function ya da procedure yapmamız gerekiyor bu işlemi yaptıktan sonra trigger içerisinde oluşturulan fonksiyonu yada procedure ‘ü belirtmemiz gerekiyor.
Genel kullanımı aşağıdaki gibidir.
CREATE FUNCTION trigger_function()
RETURNS TRIGGER
LANGUAGE PLPGSQL
AS $$
BEGIN
-- trigger logic
END;
$$
CREATE TRIGGER trigger_ismi
AFTER INSERT
ON tablo_adi
FOR EACH ROW
EXECUTE PROCEDURE function_ismi();