显示MySQL数据库中的所有触发器

问题描述 投票:0回答:8

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

sql mysql database triggers sqlcommand
8个回答
199
投票

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

show triggers;

或者您可以通过以下方式直接访问

INFORMATION_SCHEMA
表:

select trigger_schema, trigger_name, action_statement
from information_schema.triggers

18
投票

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

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
    

13
投票
您可以使用下面的内容来查找特定的触发器定义。

SHOW TRIGGERS LIKE '%trigger_name%'\G

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

SHOW TRIGGERS\G
    

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%'
    

2
投票
您可以使用 MySQL Workbench: 连接到 MySQL 服务器 选择数据库

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

1
投票
USE dbname; SHOW TRIGGERS

SHOW TRIGGERS FROM dbname;
    

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%'
    

0
投票
您可以使用下面的 SQL 显示所有触发器。 *

文档解释了INFORMATION_SCHEMA.TRIGGERS

表,我建议使用
\G,它可以更清楚地显示它们,下面的SQL可以比我最后解释的SHOW TRIGGERS显示更多详细信息:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS;
或者:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\G
并且,您可以使用以下 SQL 显示 

apple

 数据库的触发器:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA = 'apple';
并且,您可以使用 

USE

 显示选择 
apple
 数据库的 
apple 数据库的触发器。 *文档解释了SHOW TRIGGERS
,我建议使用
\G
,它可以更清楚地显示它们:

USE apple; SHOW TRIGGERS;
或者:

USE apple; SHOW TRIGGERS\G
或者:

USE apple; SHOW TRIGGERS FROM apple;
或者:

USE apple; SHOW TRIGGERS FROM apple\G
并且,即使使用 

orange

 选择 
apple
 数据库,您也可以显示 
USE
 数据库的触发器:

USE apple; SHOW TRIGGERS FROM orange;
并且,您可以显示

apple

数据库的触发器,而不用
USE
选择任何一个数据库:

SHOW TRIGGERS FROM apple;
请小心,如果您运行下面的 SQL 时未使用 

USE

 选择任何一个数据库:

SHOW TRIGGERS;
然后出现如下错误:

错误 1046 (3D000):未选择数据库

© www.soinside.com 2019 - 2024. All rights reserved.