列出 MySQL 数据库中所有触发器的命令是什么?
列出所有触发器的命令是:
show triggers;
或者您可以通过以下方式直接访问
INFORMATION_SCHEMA
表:
select trigger_schema, trigger_name, action_statement
from information_schema.triggers
TRIGGERS
表的更多信息请参见此处。我希望以下代码能为您提供更多信息。
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 LIKE '%trigger_name%'\G
或下面显示数据库中的所有触发器。它适用于 MySQL 5.0 及以上版本。
SHOW TRIGGERS\G
select * from information_schema.triggers where
information_schema.triggers.trigger_name like '%trigger_name%' and
information_schema.triggers.trigger_schema like '%data_base_name%'
USE dbname;
SHOW TRIGGERS
或
SHOW TRIGGERS FROM dbname;
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%'
文档解释了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):未选择数据库