Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einrichten von MySQL-Triggern

Mit Triggern können Sie eine Funktion in der Datenbank ausführen, wenn bestimmte Ereignisse eintreten (z. B. eine Einfügung in eine Tabelle).

Ich kann mich nicht speziell zu mysql äußern.

Vorsichtsmaßnahme:Trigger können sehr verlockend sein, wenn Sie sie zum ersten Mal verwenden, erscheinen sie wie eine Wunderwaffe für alle Arten von Problemen. Aber sie lassen "magische" Dinge geschehen, wenn Sie die Datenbank nicht in- und auswendig kennen, kann es so aussehen, als würden wirklich seltsame Dinge passieren (wie Einfügungen in andere Tabellen, Änderung von Eingabedaten usw.). Vor der Implementierung von Dingen als Trigger würde ich ernsthaft in Betracht ziehen, stattdessen die Verwendung einer API um das Schema herum zu erzwingen (vorzugsweise in der Datenbank, aber außerhalb, wenn Sie dies nicht können).

Für einige Dinge würde ich immer noch Trigger verwenden

  • Verfolgung der Felder "date_created" und "date_last_edited"
  • Einfügen von "IDs" (in Oracle, wo es kein automatisches ID-Feld gibt)
  • Aufbewahrung des Änderungsverlaufs

Dinge, für die Sie Trigger nicht verwenden möchten

  • Geschäftsregeln/Logik
  • alles, was eine Verbindung außerhalb der Datenbank herstellt (z. B. ein Webservice-Aufruf)
  • Zugriffskontrolle
  • Alles, was nicht transaktional ist (alles, was Sie im Trigger tun, MUSS mit der Transaktion rückgängig gemacht werden können)