Merhabalar, bu makalemde trigger nedir, bir trigger nasıl yazılır bu konular hakkında bilgiler edineceksiniz.
Trigger kelime anlamı tetikleyicidir. RDBMS yani ilişkisel veri tabanı yönetim sistemlerinde aktif olarak kullanılır. Veri tabanı nesnesi olup bir tabloda belirli olayların meydana gelmesi durumunda veya olayların öncesinde çalışacak bir stored procedure çeşididir.
Tabloda meydana gelebilecek olaylar veri ekleme, veri güncelleme veya veri silme işlemleridir. Bu işlemlerden sonra bir iş yaptırmak istersek (aynı tablo ya da farklı bir tabloda) trigger yapısından yararlanırız.
Örneğin;
- Satış tablosundaki bir ürünün satılması sonrasında o ürünün stok miktarının eksiltilmesi
- Banka hesabında para transferi sonrasında otomatik email gönderilmesi
- Kayıt silinmek istendiğinde bu kaydın silinemeyeceğinin bilgilendirilmesi
- Öğrenci tablosundaki kaydın silinmesi durumunda silinen bu kaydı başka bir aktarılması
Neden Trigger Kullanmalıyız?
Verilerin bütünlüğünü sağlamak için kullanmayı tercih ederiz ya da tablolarda, veri tabanında mevcut olmayan fakat ihtiyacımız olan bilgileri hesaplamak istediğimizde kullanırız.
Örneğin sipariş tablosunda miktar sütununda bir güncelleme meydana geldiğinde toplam_fiyat sütununa karşılık gelen işlemi hesaplayabiliriz.
Trigger Çeşitleri
- DML(Data Manipulation Language) Trigger
- DDL(Data Definition Language) Trigger
- Logon Trigger
1.DML Trigger
Veri tabanına yapılan veri işleme komutlarını yani insert,update ve delete işlemlerini içeren trigger çeşididir. DML Trigger kullanarak yapacağımız işi "primary key","foreign key", "unique" constraint yapılarını kullanarak da yapabiliriz. Constraint yapılarının yetersiz kaldığı durumlarda DML Trigger yapılarını kullanmayı tercih ederiz.
DML trigger’ları hazırlarken "inserted ve deleted" isimli tabloları kullanırız.
Örneğin,
- Bir insert işlemi gerçekleştiğinde "inserted tablosunda" insert edilen kayıtları,
- Bir update ya da delete işlemi gerçekleştiğinde ise "deleted tablosunda" silinen kayıtları görebiliriz.
Create Table, Alter Table, Drop Table
Create Function,Alter Function,Drop Function
Create View,Alter View,Drop View
Create Stored Procedure,Alter Stored Procedure, Drop Stored Procedure