2008-09-06 5 views

Antwort

88

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 
+2

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. –

+0

Danke für die zweite "komplizierte" Version. Das erste funktioniert nicht (kenne den Resion nicht) auf einem der Hosts ... – userlond

+1

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. –

8

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%' 
10

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 
9

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 
+0

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