GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So verwenden Sie MySQL SHOW TRIGGER

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> oder IN <database name> stellt den nachzuschlagenden Datenbanknamen bereit. Fügen Sie FROM hinzu oder IN -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 das WHERE 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 dem IF 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 dem IF 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.


Ubuntu
  1. So verwenden Sie phpMyAdmin, um eine MySQL-Datenbank zu kopieren

  2. Wie ändert man die Sortierung der MySQL-Datenbank?

  3. So kopieren Sie eine MySQL-Datenbank

  4. So erstellen Sie eine MySQL-Datenbank in cPanel

  5. So stellen Sie eine Remoteverbindung zu MySQL her

So installieren Sie MySQL Workbench in Ubuntu 20.04

So verwenden Sie das MySQL-Optimierungstool

Wie repariere ich die MySQL-Datenbank in cPanel?

Wie repariert man eine MySQL-Datenbank?

Wie optimiert man eine MySQL-Datenbank?

Wie man eine Datenbank in MySQL erstellt