Einführung
Die MySQL SHOW TRIGGERS
-Anweisung zeigt alle definierten Trigger in Datenbanktabellen an. Der Befehl hilft bei der Bereitstellung von Details für vorhandene Auslöser, einschließlich des Namens, des Ereigniszeitpunkts und anderer Details.
Obwohl die Anweisung einfach ist und ohne Optionen funktioniert, verfeinert und filtert das Hinzufügen von Optionen die Datenspalten weiter. Dadurch hilft der Befehl beim schnellen Abrufen gewünschter Informationen und bietet einen besseren Überblick über Trigger-Anweisungen in einer Datenbank.
Dieses Tutorial erklärt die SHOW TRIGGERS
-Anweisung in MySQL ausführlich anhand von Beispielen.
Voraussetzungen
- Zugriff auf den MySQL-Server über Terminal oder MySQL Workbench.
- Sudo-Berechtigungen.
- Root-Zugriff auf MySQL oder ein Konto mit TRIGGER-Benutzerberechtigung.
- Eine Datenbanktabelle mit Triggern.
Syntax
Die Syntax für SHOW TRIGGERS
Anweisung ist:
SHOW TRIGGERS
[{FROM | IN} <database name>]
[ WHERE <expression> LIKE '<pattern>']
Um zu verstehen, wie die Anweisung funktioniert, sehen Sie hier, was jeder Teil tut:
SHOW TRIGGERS
funktioniert ohne zusätzliche Optionen für die aktuelle Standarddatenbank.FROM <database name>
oderIN <database name>
stellt den nachzuschlagenden Datenbanknamen bereit. Fügen SieFROM
hinzu oderIN
-Klausel und geben Sie den Datenbanknamen an, um Trigger aus einer bestimmten Datenbank anzuzeigen.WHERE <expression>
wählt die Zeilen aus dem Ergebnis basierend auf dem bereitgestellten Ausdruck aus.LIKE '<pattern>'
filtert dasWHERE
Ausdruck und zeigt nur die Werte an, die mit dem Muster übereinstimmen.
MySQL SHOW TRIGGER:Wie funktioniert die Anweisung?
Die SHOW TRIGGERS
-Anweisung zeigt alle Trigger, die in der Arbeitsdatenbank definiert sind. Das Hinzufügen bestimmter Optionen ermöglicht das Anzeigen von Triggerinformationen aus einer Datenbank, ohne die Datenbank auszuwählen. Darüber hinaus ermöglichen weitere Optionen das Filtern der Ausgabe für verfeinerte Suchen.
Öffnen Sie vor dem Start das Terminal (CTRL +ALT +T ) und verbinden Sie sich mit dem Datenbankserver:
sudo mysql -u <username> -p
Die Eingabeaufforderung ändert sich zu mysql>
, was eine erfolgreiche Verbindung zum MySQL-Monitor anzeigt.
Liste der Auslöser
Es gibt zwei Möglichkeiten, Trigger mit SHOW TRIGGERS
aufzulisten Aussage:
1. Um Trigger aufzulisten, ohne eine Verbindung zu einer Datenbank herzustellen, fügen Sie FROM
hinzu oder IN
-Klausel und geben Sie den Datenbanknamen an.
Zum Beispiel:
SHOW TRIGGERS IN <database name>\G
SHOW TRIGGERS FROM <database name>\G
2. Alternativ stellen Sie zuerst eine Verbindung zu einer Datenbank her:
USE <database name>;
Führen Sie dann den Befehl ohne Parameter aus:
SHOW TRIGGERS\G
In beiden Fällen zeigt die Ausgabe eine Tabelle, die alle definierten Trigger enthält.
TRIGGER-Spalten im Ergebnissatz anzeigen
Die resultierende Ausgabe von SHOW TRIGGERS
-Anweisung zeigt jede Zeile mit Details zu einem bestimmten Trigger an.
Jede Spalte enthält die folgenden Attribute:
- Auslöser ist der Auslösername.
- Veranstaltung zeigt die Aktion, wenn der Trigger aktiviert wird.
- Tabelle ist der Name einer Tabelle, in der sich der Trigger befindet.
- Erklärung zeigt, was der Trigger tut. Insbesondere wird in diesem Feld die vollständige SQL-Anweisung gedruckt, die ausgeführt wird, wenn der Trigger aktiviert wird.
- Zeitpunkt zeigt an, wann der Trigger relativ zu einem Ereignis ausgeführt wird.
- Erstellt druckt das Datum und die Uhrzeit, wann ein Benutzer den Trigger gemacht hat.
- sql_mode listet die SQL-Server-Modi auf, die wirksam sind, wenn der Trigger ausgeführt wird.
- Definierer gibt den Nutzer, der den Trigger erstellt hat, und die Verbindung als
[email protected]
an . - character_set_client zeigt den Zeichensatz für Anweisungen, die vom Client kommen.
- collation_connection definiert die Zeichensatzregeln zum Vergleichen und Sortieren von Zeichenfolgen, wenn der Definierer den Trigger erstellt hat.
- Datenbankvergleich zeigt den Zeichensatz für die Datenbank beim Sortieren und Vergleichen von Strings, die dem Trigger zugeordnet sind.
MySQL SHOW TRIGGER:Beispiele
Verwenden Sie das WHERE
oder LIKE
-Anweisung, um die Spalten aus dem SHOW TRIGGERS
auszuwählen Ausgabe und verwenden Sie das AND
, OR
und NOT
Operatoren, um die Suche weiter zu filtern. Die folgenden Beispiele zeigen typische Anwendungsfälle.
Auslöser nach Tabelle anzeigen
Um die Trigger nach Tabellennamen aufzulisten, verwenden Sie eine der beiden Methoden:
1. Anzeigen der Trigger aus einer Tabelle ohne Verbinden mit einer Datenbank mit:
SHOW TRIGGERS
FROM <database name>
WHERE `Table`='<table name>'\G
Beispiel:Der Datenbankname ist people
und der Tabellenname ist person
, verwenden Sie:
SHOW TRIGGERS
FROM people
WHERE `Table`='person'\G
2. Alternativ stellen Sie zuerst eine Verbindung zur Datenbank her:
USE <database name>;
Verwenden Sie dann die SHOW TRIGGERS
nur mit WHERE
Klausel:
SHOW TRIGGERS
WHERE `Table`='<table name>'\G
Zum Beispiel für eine Datenbank people
mit einer Tabelle person
, ausführen:
USE people;
SHOW TRIGGERS
WHERE `Table`='person'\G
In beiden Fällen listet die Ausgabe alle Trigger für die jeweilige Tabelle nach Zeilen auf.
Auslöser nach Ereignis anzeigen
Jeder Trigger wird bei einer bestimmten MySQL-Ereignisanweisung aktiviert. Um Auslöser nach Ereignis aufzulisten, verwenden Sie die folgende Syntax:
SHOW TRIGGERS
FROM <database name>
WHERE `Event`='<event>'\G
Alternativ stellen Sie zuerst eine Verbindung zu einer Datenbank her:
USE <database name>;
SHOW TRIGGERS
WHERE `Event`='<event>'\G
Die möglichen Optionen für ein <event>
sind:
INSERT
- Aktiviert einen Trigger, wenn ein Benutzer Daten in eine Tabelle einfügt.UPDATE
- Führt einen Trigger aus, wenn ein Benutzer Tabellendaten aktualisiert.DELETE
- Führt einen Trigger aus, wenn ein Benutzer Daten aus einer Tabelle löscht.
Zum Beispiel:
SHOW TRIGGERS
FROM people
WHERE `Event`='DELETE'\G
Die Ausgabe zeigt nur die Trigger, bei denen das Ereignis DELETE
ist .
Auslöser nach Zeitpunkt anzeigen
Das Timing -Parameter verweist auf das Ereignis , der angibt, ob ein Trigger BEFORE
aktiviert wird oder AFTER
eine Ereignisaussage. Verwenden Sie die folgende Syntax, um Trigger basierend auf dem Timing anzuzeigen, ohne eine Verbindung zu einer Datenbank herzustellen:
SHOW TRIGGERS
FROM <database name>
WHERE `Timing`='<timing>'\G
Um zuerst eine Verbindung zu einer Datenbank herzustellen und dann die Trigger nach Timing aufzulisten, verwenden Sie:
USE <database name>;
SHOW TRIGGERS
WHERE `Timing`='<timing>'\G
Mit Beispielparametern sieht die Anweisung wie folgt aus:
SHOW TRIGGERS
FROM people
WHERE Timing='AFTER'\G
Die SHOW TRIGGERS
Die Ausgabe der Anweisung zeigt Trigger mit dem Timing an auf AFTER
setzen .
Auslöser nach Anweisung anzeigen
Die Erklärung Spalte enthält die SQL-Anweisung, die der Trigger ausführt, wenn er aufgerufen wird.
Kombinieren Sie den Befehl mit LIKE
-Klausel zum Durchsuchen von Trigger-Anweisungen:
SHOW TRIGGERS
FROM <database name>
WHERE `Statement` LIKE '<pattern>'\G
Alternativ wählen Sie zuerst die Datenbank aus und entfernen das FROM
Teil der Anweisung:
USE <database name>;
SHOW TRIGGERS
WHERE `Statement` LIKE '<pattern>'\G
Das LIKE
-Anweisung führt eine Mustersuche mit dem Platzhalterzeichen (%) durch:
- Verwenden Sie
%
am Ende, um Aussagen zu finden, die mit einem bestimmten Wort beginnen. Zum Beispiel'IF%'
stimmt mit allen Vorkommen überein, die mit demIF
beginnen Erklärung. - Fügen Sie
%
hinzu am Anfang, um Anweisungen abzugleichen, die mit einem bestimmten Wort enden. Beispiel:'%IF'
entspricht allen Anweisungen, die mit demIF
enden Erklärung. - Schreiben Sie
%
auf beiden Seiten der Anweisung, um nach einem Wort zu suchen, das sich irgendwo in der Anweisung befindet.
Eine Beispielsuche nach einem auslösenden Statement in einer Tabelle, die den AVG
enthält MySQL-Funktion ist:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%'\G
Die Abfrage ruft alle Anweisungen ab, die AVG
enthalten Funktion.
Suchparameter kombinieren
Kombinieren Sie Suchparameter mit AND
-Operator zum Erstellen komplexer Abfragen. Zum Beispiel, um nach Triggern zu suchen, die den MySQL AVG
enthalten Funktion und haben die DELETE
Ereignis, Ausführung:
SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%' AND `Event`='DELETE'\G
Das Ergebnis zeigt Trigger, bei denen beide Aussagen als True ausgewertet werden . Verwenden Sie zum Erstellen zusätzlicher Abfragen NOT
und OR
Betreiber.
Auslöser in MySQL Workbench anzeigen
Alle SHOW TRIGGERS
Anweisungen aus den vorherigen Beispielen funktionieren in MySQL Workbench. Der einzige Unterschied besteht darin, dass die Befehle mit einem Semikolon enden (;
) anstelle von \G
in MySQL Workbench.
Gehen Sie wie folgt vor, um Trigger in MySQL Workbench anzuzeigen:
1. Führen Sie MySQL Workbench vom Terminal aus (CTRL +ALT +T ) mit dem folgenden Befehl:
mysql-workbench
Suchen Sie alternativ über die GUI in der Anwendungsliste nach MySQL Workbench.
2. Wählen Sie die gewünschte Verbindung aus, um sich mit dem Datenbankserver zu verbinden.
3. Geben Sie das Benutzerkennwort ein, wenn Sie dazu aufgefordert werden.
4. Fügen Sie die SHOW TRIGGERS
hinzu Anweisung in das Abfragefeld:
SHOW TRIGGERS;
5. Führen Sie zuletzt die Abfrage aus.
Das Ergebnis wird als Tabelle mit allen Triggern angezeigt.