CodeBlanks Logo Icon CodeBlanks

Trigger ile bütünlük

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

query.sql
-- trigger ile bütünlük
CREATE TRIGGER check_balance

Örnek çözüm

query.sql
CREATE TRIGGER check_balance
BEFORE INSERT ON accounts
FOR EACH ROW
BEGIN
  IF NEW.balance < 0 THEN
    SIGNAL SQLSTATE '45000';
  END IF;
END

Beklenen çıktı

Trigger oluşturuldu

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 BEFORE ekle

Soru
CREATE TRIGGER check_balance
____ INSERT ON accounts
Cevap
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.

Orta seviye bölümündeki tüm dersler