如何列出MySQL数据库中的所有触发器?

问题描述:

在MySQL数据库中列出所有触发器的命令是什么?如何列出MySQL数据库中的所有触发器?

的命令是:

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

对于显示出在特定模式特定的触发,你可以尝试以下方法:

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%' 

您可以使用下面找到一个特定的触发定义。

SHOW TRIGGERS LIKE '%trigger_name%'\G 

或以下显示数据库中的所有触发器。它将适用于MySQL 5.0及更高版本。

SHOW TRIGGERS\G 

我希望下面的代码能给你更多的信息。

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