Dieser Artikel beschreibt anhand von Beispielen die Einführung in MySQL-Trigger, die Erstellung von Triggern und deren Verwendungsbeschränkungen. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Einführung Ein SQL-Trigger ist eine Reihe von SQL-Anweisungen, die im Datenbankkatalog gespeichert sind. Ein SQL-Trigger wird immer dann ausgeführt oder ausgelöst, wenn ein mit einer Tabelle verknüpftes Ereignis eintritt, beispielsweise ein Einfügen, Aktualisieren oder Löschen. SQL-Trigger können auch als ein spezieller Typ gespeicherter Prozeduren betrachtet werden. Das Besondere daran ist, dass es nicht wie eine gespeicherte Prozedur direkt aufgerufen wird. Der Hauptunterschied zwischen Triggern und gespeicherten Prozeduren besteht darin, dass Trigger automatisch aufgerufen werden, wenn Datenänderungsereignisse für eine Tabelle ausgeführt werden, während gespeicherte Prozeduren explizit aufgerufen werden müssen. Schauen wir uns nun die Vorteile von SQL-Triggern an:
Schauen wir uns die Mängel an:
Da Trigger ein spezieller Typ gespeicherter Prozeduren sind, stellt sich die Frage, wie wir zwischen ihnen wählen. Das Folgende ist nur ein Vorschlag. Wenn wir die Arbeit nicht mit gespeicherten Prozeduren erledigen können, können wir die Verwendung von SQL-Triggern in Betracht ziehen. Erstellen eines Triggers In MySQL ist ein Trigger eine Reihe von SQL-Anweisungen, die automatisch aufgerufen werden, wenn Änderungen an Daten in den zugehörigen Tabellen vorgenommen werden. Trigger können so definiert werden, dass sie vor oder nach einer Datenänderung durch eine Einfüge-, Aktualisierungs- oder Löschanweisung aufgerufen werden. Vor MySQL 5.7.2 konnten maximal sechs Trigger pro Tabelle definiert werden. Werfen wir einen Blick auf ihre kurze Einführung:
Ab MySQL 5.7.2+ können Sie jedoch mehrere Trigger für dasselbe Triggerereignis und dieselbe Aktionszeit definieren. Wenn Sie Anweisungen verwenden, die Daten in einer Tabelle ändern, ohne INSERT-, DELETE- oder UPDATE-Anweisungen zu verwenden, werden die mit der Tabelle verknüpften Trigger nicht aufgerufen. Beispielsweise löscht die Truncate-Anweisung alle Daten in einer Tabelle, ruft aber keine mit der Tabelle verknüpften Trigger auf. Einige Anweisungen verwenden jedoch die INSERT-Anweisung im Hintergrund, z. B. die REPLACE-Anweisung oder die LOAD DATA-Anweisung. Bei Verwendung dieser Anweisungen werden die entsprechenden, mit der Tabelle verknüpften Trigger aufgerufen. Daher müssen wir für jeden mit der Tabelle verknüpften Trigger einen eindeutigen Namen verwenden. Es empfiehlt sich, für verschiedene Tabellen den gleichen Triggernamen zu definieren. Schauen wir uns die Syntaxstruktur zum Definieren eines Triggers an: (VORHER | NACHHER)_Tabellenname_(EINFÜGEN | AKTUALISIEREN | LÖSCHEN) Beispielsweise ist before_order_update ein Trigger, der aufgerufen wird, bevor eine Zeile in der Auftragstabelle aktualisiert wird. Schauen wir uns eine andere Definition an: Tabellenname_(VORHER | NACHHER)_(EINFÜGEN | AKTUALISIEREN | LÖSCHEN) Beispielsweise ist order_before_update dasselbe wie der oben beschriebene Trigger before_order_update. MySQL speichert Trigger im Datenverzeichnis, zum Beispiel: /data/luyaran/, und verwendet Dateien mit den Namen tablename.TRG und triggername.TRN:
Wir können also MySQL-Trigger sichern, indem wir die Triggerdateien in den Sicherungsordner kopieren, und wir können auch das Tool mysqldump verwenden, um die Trigger zu sichern. Nutzungsbeschränkung MySQL-Trigger decken die gesamte in Standard-SQL definierte Funktionalität ab. Bei der Verwendung in Ihren Anwendungen gelten jedoch einige Einschränkungen:
Okay, das ist alles zu diesem Eintrag. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur Verwendung selbstverschachtelter Vue-Baumkomponenten
>>: Verwenden Sie ein Shell-Skript, um die Python3.8-Umgebung in CentOS7 zu installieren (empfohlen)
In Linux C/C++ werden Operationen auf Thread-Eben...
Grundlegende Umgebungskonfiguration Bitte kaufen ...
Ich habe Docker kürzlich verwendet, um ein Projek...
1. Was ist mycat Ein vollständig Open Source-Groß...
In diesem Artikel wird die Installations- und Kon...
Als ich kürzlich an einem Übungsprojekt arbeitete...
Vorwort tcpdump ist ein bekanntes Befehlszeilento...
So können Sie mithilfe des CSS-Stils die Schrifta...
Makrotasks und Mikrotasks JavaScript ist eine Sin...
Ich möchte eine Situation erreichen, in der die B...
Bevor wir über die CSS-Priorität sprechen, müssen...
Um folgende Ziele zu erreichen: Die MySQL-Datenba...
Wenn der Pfad nach dem Domänennamen auf andere Ve...
Apache Superset ist ein leistungsstarkes BI-Tool,...
In diesem Artikel erfahren Sie, wie Sie das Probl...