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

如何列出MySQL数据库中的所有触发器?,mysql,triggers,Mysql,Triggers,列出MySQL数据库中所有触发器的命令是什么?列出所有触发器的命令是: show triggers; 或者,您可以通过以下方式直接访问信息\u架构表: select trigger_schema, trigger_name, action_statement from information_schema.triggers 您可以从5.0.10版开始执行此操作 更多关于该项目的信息 要在特定模式中显示特定触发器,可以尝试以下操作: select * from information_sch

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

列出所有触发器的命令是:

show triggers;
或者,您可以通过以下方式直接访问
信息\u架构
表:

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
  • 您可以从5.0.10版开始执行此操作
  • 更多关于该项目的信息

要在特定模式中显示特定触发器,可以尝试以下操作:

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%'
这将在MySQL版本5.5.27及更高版本中提供总共22列

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

我建议使用“SHOW TRIGGERS”查询,而不是直接访问信息\u模式-一旦服务器上有上千个数据库,“SHOW TRIGGERS”仍然具有出色的性能,后者将非常缓慢。感谢fpr第二个“复杂”版本。第一个在其中一台主机上不起作用(不知道大小)…请注意,
SHOW TRIGGERS
要求您对该数据库和表具有
TRIGGER
权限。如果您使用非特权用户登录MySQL,执行
SHOW TRIGGERS
将不会返回任何内容,而不会抛出错误。如果您不知道特权要求,这可能会让人困惑。在处理模式时,我会避免使用
之类的
。我曾经在这样的环境中工作过,这样做很容易出错,客户有一个名为“company”的数据库和另一个名为“company\u project”的数据库。我还建议将关键字大写,以确保其清晰性和信息的完整性,以及其中的列,这样就可以清楚地看出,您不是在处理常规数据库。