Trigger ile bütünlük
- SQL kursu
- Orta seviye
- Ders 98/115
- 4 dk
Trigger ile ek bütünlük kuralı koymayı öğrenirsin.
Trigger ile bütünlük
Trigger bir olayda otomatik çalışan koddur. Özel bütünlük kontrolleri için kullanılır.
CREATE TRIGGER check_balance
BEFORE INSERT ON accounts
FOR EACH ROW
BEGIN
IF NEW.balance < 0 THEN
SIGNAL SQLSTATE '45000';
END IF;
END;Bu sorgu negatif bakiye eklenmesini engeller.
check_balance tetikleyicisi oluşturulur.
Trigger ile bütünlük — ayrıntı
Trigger CHECK'ten daha karmaşık koşulları denetler. Birden çok tabloyu ilişkilendirebilir.
Örneğin sipariş eklenirken müşterinin kredi limitini başka bir tablodan okuyup aşılıyorsa işlemi reddetmek CHECK ile değil trigger ile yapılır.
Uygulama Trigger ile bütünlük
accounts tablosuna BEFORE INSERT trigger ekle: negatif bakiyeyi engelle.
Başlangıç kodu
-- trigger ile bütünlük
CREATE TRIGGER check_balanceÖrnek çözüm
CREATE TRIGGER check_balance
BEFORE INSERT ON accounts
FOR EACH ROW
BEGIN
IF NEW.balance < 0 THEN
SIGNAL SQLSTATE '45000';
END IF;
ENDBeklenen çıktı
Trigger oluşturuldu
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 BEFORE ekle
CREATE TRIGGER check_balance
____ INSERT ON accounts
CREATE TRIGGER check_balance
BEFORE INSERT ON accounts
Açıklama: BEFORE INSERT tetikleyicisi satır yazılmadan önce çalışır; hatalı veriyi engelleyebilir.
2 Trigger ile bütünlük: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
trigger |
tetik |
BEFORE |
önce |
AFTER |
sonra |
otomatik |
olay |
3 Trigger ne zaman çalışır?
- Otomatik (olayda) Doğru cevap
- Manuel çağrıda
- Her zaman
- Asla
Açıklama: Trigger bir olayda otomatik çalışır.