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

7qhs6swi  于 2022-12-10  发布在  Mysql
关注(0)|答案(7)|浏览(143)

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

tjjdgumg

tjjdgumg1#

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

show triggers;

或者,您可以通过以下方式直接访问INFORMATION_SCHEMA表:

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
tag5nh1u

tag5nh1u2#

我希望下面的代码能为您提供更多信息。

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

2skhul333#

您可以使用下面的命令来查找特定的触发器定义。

SHOW TRIGGERS LIKE '%trigger_name%'\G

或下图显示数据库中的所有触发器。它将适用于MySQL5.0及以上版本。

SHOW TRIGGERS\G
ecbunoof

ecbunoof4#

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

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

wgeznvg75#

您可以使用MySQL工作台:连接到MySQL服务器选择数据库

  • 在表名称行上,单击编辑图标(看起来像作业机具)
  • 在表编辑窗口中-单击选项卡“Trigger”
  • 在触发器列表中,单击eTrigger名称以获取其源代码
toiithl6

toiithl66#

这句话可能有助于解决这个问题:

select LOWER(concat('delimiter |', '\n', 'create trigger %data_base_name%.', TRIGGER_NAME, '\n', 
'    ', ACTION_TIMING, ' ', EVENT_MANIPULATION, ' on %data_base_name%.', EVENT_OBJECT_TABLE, ' for each row', '\n',
ACTION_STATEMENT, '\n',
'|')) AS TablaTriggers from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%data_base_name%'
ilmyapht

ilmyapht7#

USE dbname;
SHOW TRIGGERS

SHOW TRIGGERS FROM dbname;

相关问题