Junior
Was sind Trigger in einer relationalen Datenbank?
sobes.tech KI
Antwort von AI
Ein Trigger ist eine spezielle Art von gespeicherter Prozedur, die automatisch als Reaktion auf ein bestimmtes Ereignis in einer Tabelle oder Ansicht der Datenbank ausgeführt wird.
Hauptereignisse, die Trigger auslösen:
INSERT: Einfügen einer neuen Zeile.UPDATE: Ändern einer bestehenden Zeile.DELETE: Löschen einer Zeile.
Trigger können vor (BEFORE) oder nach (AFTER) der Ausführung des Ereignisses ausgelöst werden.
Beispiele für die Verwendung von Triggern:
- Automatisches Aktualisieren von Feldern (z.B. Datum der letzten Änderung).
- Überprüfung der Datenintegrität.
- Protokollierung von Änderungen.
- Kaskadierende Aktualisierung oder Löschung von verwandten Daten.
-- Beispiel für die Erstellung eines AFTER INSERT Triggers (fiktive Syntax)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Beispiel für eine Funktion, die vom Trigger aufgerufen wird
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Vorteile:
- Zentralisierung der Geschäftslogik.
- Automatisierung routinemäßiger Aufgaben.
- Erhöhung der Datenintegrität.
Nachteile:
- Komplexität bei der Fehlersuche.
- Potenzieller Einfluss auf die Leistung.
- Erhöhte Komplexität der Anwendungslogik, da ein Teil auf die Datenbankebene ausgelagert wird.