第 16 章 · 第二节 · 课件第 9、10、11、12 页合并重做
创建触发器的语法
时机、事件、表,加上 FOR EACH ROW 和触发器体。
创建触发器的语法
CREATE [DEFINER = 用户] TRIGGER 触发器名
触发时机 触发事件 ON 表名
FOR EACH ROW
[触发顺序]
触发器体
| 部分 | 说明 |
|---|---|
| 触发时机 | BEFORE 或 AFTER |
| 触发事件 | INSERT、UPDATE 或 DELETE,一个触发器只响应一种 |
| FOR EACH ROW | 行级触发,语句影响几行就执行几次 |
| 触发顺序 | 同一表、同一时机、同一事件有几个触发器时,用 FOLLOWS 或 PRECEDES 指定先后 |
| 触发器体 | 一条语句,或 BEGIN … END 语句块 |
NEW 与 OLD
| 事件 | NEW | OLD |
|---|---|---|
| INSERT | 将要插入的行 | 没有 |
| UPDATE | 修改后的行 | 修改前的行 |
| DELETE | 没有 | 被删除的行 |
- 用 NEW.列名、OLD.列名 访问这一行的值
- 只有 BEFORE 触发器可以修改 NEW.列名
- 查看用 SHOW TRIGGERS,删除用 DROP TRIGGER,没有修改触发器的语句
试一试三种事件中的 NEW 与 OLD
事件
| sno | 第二列 | 第三列 |
|---|