CodeBlanks Logo Icon CodeBlanks

BEFORE ve AFTER

Zamanlama farkını öğrenirsin.

BEFORE ve AFTER

BEFORE olaydan önce, AFTER olaydan sonra çalışır. Doğrulama için BEFORE, loglama için AFTER.

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

Bu sorgu güncellemeden önce kontrol eder.

check_balance tetikleyicisi oluşturulur.

BEFORE ve AFTER — ayrıntı

BEFORE trigger'ı veriyi değiştirebilir veya işlemi durdurabilir. AFTER yalnız okur.

Örneğin BEFORE UPDATE ile negatif bakiyeyi reddedersin; AFTER UPDATE ise değişiklik yazıldıktan sonra log kaydı eklemek için uygundur.

Uygulama BEFORE ve AFTER

Bir BEFORE UPDATE trigger'ı yaz: negatif bakiyeyi engelle.

Başlangıç kodu

query.sql
-- before trigger
CREATE TRIGGER check_balance

Örnek çözüm

query.sql
CREATE TRIGGER check_balance
BEFORE UPDATE 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
____ UPDATE ON accounts
Cevap
CREATE TRIGGER check_balance
BEFORE UPDATE ON accounts

Açıklama: BEFORE UPDATE tetikleyicisi güncelleme yazılmadan önce çalışır; geçersiz değeri engelleyebilir.

2 Doğrulama için hangi trigger?

  • BEFORE Doğru cevap
  • AFTER
  • INSTEAD
  • DURING

Açıklama: BEFORE trigger doğrulama içindir.

3 BEFORE ve AFTER: kavramları eşleştir

Kavram Anlamı
BEFORE önce
AFTER sonra
doğrulama kontrol
loglama kayıt

İleri seviye bölümündeki tüm dersler