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)
Ich habe in letzter Zeit nichts zu tun, also bast...
Datenbank MySQL Version 8.0.18 Laden Sie eine DBe...
Wie unten dargestellt: 1. ssh -v -p [Portnummer] ...
Vorwort Einfach ausgedrückt ist tcpdump ein Paket...
Seitenbeschreibung: Hauptseite: Name —> shish...
Heute möchte ich mit Ihnen teilen, dass der Stand...
Aufgrund der zunehmenden Anzahl von Schaltflächen...
Ressourcenzusammenführung und -komprimierung für ...
Inhaltsverzeichnis Installieren Sie Docker-ce für...
Problemhintergrund: Wenn Sie Docker zum Bereitste...
Ich habe vor Kurzem Front-End- und Back-End-Techn...
Vorwort Wenn die HTML-Struktur einer Seite viele ...
Dieser Artikel vergleicht und fasst vier Möglichk...
Im vorherigen Artikel „Änderungen der MySQL-Tabel...
1. Installationsumgebung 1. HUAWEI Mate X CPU i5 ...