查询
SHOW TRIGGERS LIKE ?;
?->表名,而不是触发器名称
官方文档:https://dev.mysql.com/doc/refman/8.0/en/show-triggers.html
SHOW TRIGGERS [{FROM|IN} _db_name_][LIKE '_pattern_'| WHERE _expr_]
SHOW TRIGGERS 列出当前为数据库中的表定义的触发器(除非给出 FROM 子句,否则为默认数据库)。此语句仅返回您拥有 TRIGGER 权限的数据库和表的结果。 LIKE 子句(如果存在)指示要匹配的表名称(不是触发器名称),并使语句显示这些表的触发器。可以使用 WHERE 子句来使用更通用的条件来选择行,如第 26.8 节“SHOW 语句的扩展”中所述。
mysql> SHOW TRIGGERS LIKE 'acc%'\G
*************************** 1. row ***************************
Trigger: ins_sum
Event: INSERT
Table: account
Statement: SET @sum = @sum + NEW.amount
Timing: BEFORE
Created: 2018-08-08 10:10:12.61
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_ENGINE_SUBSTITUTION
Definer: me@localhost
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
Database Collation: utf8mb4_0900_ai_ci
批量删除数据库中触发器 存储过程 事件
SELECT CONCAT('DROP TRIGGER IF EXISTS `', TRIGGER_SCHEMA, '`.`', TRIGGER_NAME, '`;')
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA = 'schem_name';
SELECT CONCAT('DROP PROCEDURE IF EXISTS ', ROUTINE_NAME, ';')
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_SCHEMA = DATABASE();
SELECT CONCAT('DROP EVENT IF EXISTS `', EVENT_NAME, '`;')
FROM INFORMATION_SCHEMA.EVENTS
WHERE EVENT_SCHEMA = 'your_database_name';