2008-09-06 111 views

回答

88

的命令是:

show triggers 

,或者你可以直接通過訪問INFORMATION_SCHEMA表:

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
+2

我建議你使用了「SHOW觸發器」的查詢,而不是直接訪問INFORMATION_SCHEMA去 - 如果服務器上有超過1000個數據庫,後者將非常緩慢,而「SHOW TRIGGERS」仍然具有出色的性能。 – 2011-11-18 09:45:49

+0

謝謝fpr第二個「複雜」版本。第一個在主機之一上不起作用(不知道resion)... – userlond 2015-02-09 08:00:53

8

對於顯示出在特定模式特定的觸發,你可以嘗試以下方法:

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

您可以使用下面找到一個特定的觸發定義。

SHOW TRIGGERS LIKE '%trigger_name%'\G 

或以下顯示數據庫中的所有觸發器。它將適用於MySQL 5.0及更高版本。

SHOW TRIGGERS\G 
9

我希望下面的代碼能給你更多的信息。

select * from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%your_db_name%' 

這會給你22分列在MySQL版本:5.5.27及以上

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 
相關問題