Matti Mäkitalo: Frage zu Triggern in SQL

Beitrag lesen

Hallo,

Ob Trigger kaskadieren muss ich erst lesen. Das kannst du auch selbst...

Hat funktioniert (Server-Version: 10.4.24-MariaDB )

Allerdings musst du aufpassen: Trigger können keine Tabellen mehr bearbeiten, auf denen bereits Trigger liefen.

Also: Trigger auf Tabelle A updated Tabelle B. Trigger auf Tabelle B updated Tabelle C. Trigger auf Tabelle C updated Tabelle A <-- Fehler.

Generell helfen Trigger bei der Datenkonsistenz - sind aber teilweise sehr schwer zu debuggen wenn etwas schief läuft. Testbarkeit ist auch schwerer (man benötigt immer eine laufende DB, was die Tests langsamer macht; und man kann die Trigger schwerer in "Units" aufteilen, weswegen es quasi unmöglich wird, die Seams festzulegen).

Ich habe größere Applikationen mit vielen Triggern entwickelt und würde es heute vermutlich nicht mehr tun.

Bis auf eine Ausnahme: History-Tabellen (quasi eine "Schattentabelle" zu jeder Tabelle; bei jedem Update/Delete wird der letzte, noch nicht aktualisierte/gelöschte Eintrag in diese History-Tabelle geschrieben).

Viele Grüße Matti