1. 触发器是什么?
-
定义:一种与表事件(INSERT/UPDATE/DELETE)绑定的特殊存储过程,自动执行无需手动调用。
-
核心特点:
-
事件驱动:由特定数据库操作触发。
-
事务关联:触发器内操作通常与触发语句在同一事务中。
-
权限控制:触发器继承定义者的权限,而非调用者。
-
2. 触发器类型
分类依据 | 类型 | 触发时机 |
---|---|---|
触发时间 | BEFORE 触发器 | 在事件(如INSERT)执行前触发 |
AFTER 触发器 | 在事件执行后触发 | |
触发事件 | INSERT 触发器 | 插入数据时触发 |
UPDATE 触发器 | 更新数据时触发 | |
DELETE 触发器 | 删除数据时触发 |
3.MySQL 触发器语法
-- 基础结构
CREATE TRIGGER 触发器名
触发时机(BEFORE/AFTER) 触发事件(INSERT/UPDATE/DELETE)
ON 表名 FOR EACH ROW
BEGIN
-- 触发器逻辑(可访问 NEW 和 OLD)
-- 示例: NEW.字段名 表示新数据,OLD.字段名 表示旧数据
END;
-
关键元素:
-
NEW:代表新数据(INSERT/UPDATE时可用)
-
OLD:代表旧数据(UPDATE/DELETE时可用)
-
FOR EACH ROW:行级触发器(多数数据库默认)
-