Datenbank-Trigger (kurz: Trigger) sind spezielle automatische Aktionen in einer Datenbank, die ausgelöst werden, wenn bestimmte Ereignisse auf einer Tabelle oder Sicht (View) passieren.
Ein Trigger ist ein vordefinierter Code, der bei INSERT, UPDATE oder DELETE auf einer Tabelle automatisch ausgeführt wird – ohne dass der Benutzer ihn direkt aufruft.
Stell dir vor, du hast eine Tabelle Bestellungen
, und du willst, dass immer, wenn eine Bestellung gelöscht wird, diese Info in einer Tabelle Log
gespeichert wird.
Dann schreibst du einen DELETE-Trigger für die Tabelle Bestellungen
, der automatisch beim Löschen etwas in Log
schreibt.
Typ | Beschreibung |
---|---|
BEFORE | Wird vor der Aktion ausgeführt |
AFTER | Wird nach der Aktion ausgeführt |
INSTEAD OF | (bei Views) ersetzt die Aktion komplett |
CREATE TRIGGER log_delete
AFTER DELETE ON Bestellungen
FOR EACH ROW
BEGIN
INSERT INTO Log (aktion, zeitpunkt)
VALUES ('Bestellung gelöscht', NOW());
END;
Validierung von Daten
Automatisches Logging
Business-Logik abbilden
Referentielle Integrität erweitern
Schwer zu debuggen
Können unbemerkt viele Aktionen auslösen
Beeinflussen Performance, wenn komplex