119

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

4

6 回答 6

183

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

show triggers;

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

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
于 2008-09-06T10:02:40.827 回答
17

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

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

这将在MySQL 版本中为您提供总共 22 列: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
于 2013-09-13T09:24:51.390 回答
13

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

SHOW TRIGGERS LIKE '%trigger_name%'\G

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

SHOW TRIGGERS\G
于 2011-10-10T09:43:11.450 回答
11

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

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%'
于 2011-08-31T13:18:38.127 回答
1

您可以使用 MySQL Workbench:连接到 MySQL 服务器 Select DB

  • 在表名称行上单击编辑图标(看起来像一个工作工具)
  • 在表格编辑窗口中 - 单击选项卡“触发器”
  • 在 Triggers 列表中单击 eTrigger 名称以获取其源代码
于 2021-08-17T20:55:21.033 回答
0

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

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%'
于 2021-10-02T01:43:47.143 回答