SHOW TRIGGERS
SHOW TRIGGERS 语句显示为数据库中的表定义的触发器。
SHOW TRIGGERS 语句语法如下:
SHOW TRIGGERS
[{FROM | IN} database_name]
[LIKE 'pattern' | WHERE expr]
FROM 子句用于指定数据库,如果未指定则为默认数据库。SHOW TRIGGERS 语句仅返回具有 TRIGGER 权限的数据库和表的结果。
LIKE 子句(如果存在)指定要匹配的表名称(不是触发器名称),并显示这些表的触发器。可以使用 WHERE 子句指定的条件来选择行。
SHOW TRIGGERS 语句的输出如下信息:
-
Trigger:触发器名称。 -
Event:触发事件。这是触发器激活所关联表上的操作类型。该值可以为INSERT(插入了一行)、DELETE(删除了一行)或UPDATE(修改了一行)。 -
Table:定义触发器的表。 -
Statement:触发器激活时执行的语句。 -
Timing:触发器是在触发事件之前还是之后被激活。该值可以为BEFORE或者AFTER。 -
Created:创建触发器的日期和时间。值的类型为TIMESTAMP(2)(以百分之一秒为小数部分)。 -
sql_mode:创建触发器时生效的 SQL 模式。 -
Definer:创建触发器的用户账号,格式为'user_name'@'host_name'。 -
character_set_client:创建触发器时character_set_client系统变量在当前会话的值。 -
collation_connection:创建触发器时collation_connection系统变量在当前会话的值。 -
Database Collation:与触发器关联的数据库的排序规则。
触发器信息也可从 INFORMATION_SCHEMA TRIGGERS 表中获得,详细信息请参见 INFORMATION_SCHEMA TRIGGERS。
SHOW TRIGGER 语句的示例如下:
SHOW TRIGGERS LIKE 'test_trg%'\G
*************************** 1. row ***************************
Trigger: test_trg
Event: UPDATE
Table: test
Statement: TRIGGER test_trg BEFORE UPDATE ON test
FOR EACH ROW
BEGIN
IF NEW.user_num < 1 THEN
SET NEW.user_num = 1;
ELSEIF NEW.user_num > 45 THEN
SET NEW.user_num= 45;
END IF;
END
Timing: BEFORE
Created: 2022-05-18 18:07:51.994639
sql_mode: STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE
Definer: 'root'@'%'
character_set_client: utf8mb4
collation_connection: utf8mb4
Database Collation: utf8mb4