Was ist der Befehl, um alle Trigger in einer MySQL-Datenbank aufzulisten?Wie listen Sie alle Trigger in einer MySQL-Datenbank auf?
Antwort
Der Befehl lautet:
show triggers
oder Sie können durch die INFORMATION_SCHEMA
Tabelle direkt zugreifen:
select trigger_schema, trigger_name, action_statement
from information_schema.triggers
- Sie können diese 5.0.10 ab von Version tun.
- Weitere Informationen über die
TRIGGERS
table is here.
für einen bestimmten Auslöser in einem bestimmten Schema zeigt, können Sie versuchen, die folgend:
select * from information_schema.triggers where
information_schema.triggers.trigger_name like '%trigger_name%' and
information_schema.triggers.trigger_schema like '%data_base_name%'
Sie können unten verwenden, um eine bestimmte Trigger-Definition zu finden.
SHOW TRIGGERS LIKE '%trigger_name%'\G
oder die unten, um alle Auslöser in der Datenbank zu zeigen. Es wird für MySQL 5.0 und höher funktionieren.
SHOW TRIGGERS\G
Ich hoffe, folgenden Code wird Ihnen weitere Informationen geben.
select * from information_schema.triggers where
information_schema.triggers.trigger_schema like '%your_db_name%'
Dies wird Ihnen in MySQL-Version insgesamt 22 Spalten geben: 5.5.27 und Above
TRIGGER_CATALOG
TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED
SQL_MODE
DEFINER
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION
Ich würde vermeiden, 'LIKE' zu verwenden, wenn Sie mit Schema arbeiten. Ich habe in Umgebungen gearbeitet, in denen es so fehleranfällig ist, wenn ein Client eine Datenbank namens "Firma" und eine andere Firma "Firmenprojekt" hat. Ich würde auch vorschlagen, KEYWORDS für Klarheit und INFORMATION_SCHEMA und die Spalten dort groß zu machen, also ist es klar, dass Sie nicht mit einer regelmäßigen DB beschäftigen. – AndrewWhalan
Ich würde empfehlen, mit der Verwendung der "SHOW Triggern" geht direkt Abfrage anstatt auf information_schema - Letzteres wird sehr langsam, wenn Sie mehr als tausend Datenbanken auf dem Server haben, während "SHOW TRIGGERS" immer noch eine hervorragende Leistung hat. –
Danke für die zweite "komplizierte" Version. Das erste funktioniert nicht (kenne den Resion nicht) auf einem der Hosts ... – userlond
Beachten Sie, dass 'SHOW TRIGGERS' erfordert, dass Sie das' TRIGGER'-Privileg für diese Datenbank und Tabelle haben. Wenn Sie sich mit einem nicht privilegierten Benutzer bei MySQL anmelden, wird beim Ausführen von 'SHOW TRIGGERS' nichts zurückgegeben, anstatt einen Fehler zu erzeugen. Das kann verwirrend sein, wenn Sie die Privilegienanforderung nicht kennen. –