INFORMATION_SCHEMA TRIGGERS
INFORMATION_SCHEMA TRIGGERS 字典视图提供了有关触发器的信息。要查看有关表的触发器的信息,必须具有该表的 TRIGGER 权限。
INFORMATION_SCHEMA TRIGGERS 字典视图所包含的字段如下表所示。
| 字段名称 | 描述 |
|---|---|
| TRIGGER_CATALOG | 触发器所属目录的名称。此值始终为 def。 |
| TRIGGER_SCHEMA | 触发器所属 Shema(数据库)的名称。 |
| TRIGGER_NAME | 触发器名称。 |
| EVENT_MANIPULATION | 触发事件。这是激活触发器所关联表上的操作类型。该值可以为 INSERT(插入了一行)、DELETE(删除了一行)或者 UPDATE(修改了一行)。 |
| EVENT_OBJECT_CATALOG、EVENT_OBJECT_SCHEMA、 EVENT_OBJECT_TABLE | 每个触发器只与一个表相关联。这些字段分别指示此表所在的目录和 Schema(数据库)以及表名。EVENT_OBJECT_CATALOG 的值始终为 def。 |
| ACTION_ORDER | 在具有相同 EVENT_MANIPULATION 和 ACTION_TIMING 值的同一表上的触发器列表中的触发器操作的顺序和位置。 |
| ACTION_CONDITION | 此值始终为 NULL。 |
| ACTION_STATEMENT | 触发器激活时所执行的语句。文本使用 UTF-8 编码。 |
| ACTION_ORIENTATION | 此值始终为 ROW。 |
| ACTION_TIMING | 触发器是在触发事件之前还是之后激活。该值可以为 BEFORE 或者 AFTER。 |
| ACTION_REFERENCE_OLD_TABLE | 此值始终为 NULL。 |
| ACTION_REFERENCE_NEW_TABLE | 此值始终为 NULL。 |
| ACTION_REFERENCE_OLD_ROW、ACTION_REFERENCE_NEW_ROW | 旧列标识符和新列标识符。ACTION_REFERENCE_OLD_ROW 的值总是为 OLD。 ACTION_REFERENCE_NEW_ROW 的值总是为 NEW。 |
| CREATED | 创建触发器的日期和时间。值的类型为 TIMESTAMP(2) (以百分之一秒为小数部分)。 |
| SQL_MODE | 创建触发器时生效的 SQL 模式。 |
| DEFINER | DEFINER 子句中指定的账号(通常是创建触发器的用户),格式为 'user_name'@'host_name'。 |
| CHARACTER_SET_CLIENT | 创建触发器时 character_set_client 系统变量在当前会话的值。 |
| COLLATION_CONNECTION | 创建触发器时 collation_connection 系统变量在当前会话的值。 |
| DATABASE_COLLATION | 与触发器关联的数据库的排序规则。 |
示例如下:
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_SCHEMA='test' AND TRIGGER_NAME='test_trg'\G
*************************** 1. row ***************************
TRIGGER_CATALOG: def
TRIGGER_SCHEMA: test
TRIGGER_NAME: test_trg
EVENT_MANIPULATION: UPDATE
EVENT_OBJECT_CATALOG: def
EVENT_OBJECT_SCHEMA: test
EVENT_OBJECT_TABLE: test
ACTION_ORDER: 0
ACTION_CONDITION: NULL
ACTION_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
ACTION_ORIENTATION: ROW
ACTION_TIMING: BEFORE
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
ACTION_REFERENCE_OLD_ROW: OLD
ACTION_REFERENCE_NEW_ROW: NEW
CREATED: 2022-05-18 18:07:51.994639
SQL_MODE: STRICT_ALL_TABLES,NO_ZERO_IN_DATE
DEFINER: 'root'@'%'
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4
DATABASE_COLLATION: utf8mb4