第 16 章 · 第二节
写出第一个能跑的触发器
先看语法,再把课件那个例子原样敲一遍。

记牢它语法四要素
- 什么时机
- 什么事件
- 哪张表
- 每行都跑
重 点
四样写齐了才算一个完整的触发器,缺一样真机就不认。
知道更多
触发器只能建在永久表上,临时表和视图上都建不了。
先看语法,再把课件那个例子原样敲一遍。

四样写齐了才算一个完整的触发器,缺一样真机就不认。
触发器只能建在永久表上,临时表和视图上都建不了。
触发器一辈子就这三条语句。

没有 ALTER TRIGGER 这一条,课件这张图上也没有它。
那改一个触发器要几步?
名字、时机加事件、哪张表、每一行、要干什么。

FOR EACH ROW 必须写,它说的是命中的每一行都跑一遍。
DEFINER 那一段可以不写,不写就是当前登录的这个账号。
少写 FOR EACH ROW 会怎么样?
触发器要动的是正在被改的那一行。

BEFORE INSERT 里一句 SET NEW.score,值就换了。

SET NEW.列 改的是将要落盘的那个值,改完才拿去查约束。
触发器体里有分号,跟存储过程一样要先改定界符,不改就报 1064。
AFTER 里 NEW 读得到但改不动,真机直接报 1362。
c8 那一行存进去的是 0.00,不是 NULL。

c7 还是 NULL,因为它是建这个触发器之前就在表里的。
课件这张结果表第一行 s2 苏乐 信息,是 s 表的行串进来了,sc 表没有它。
这一页页眉写着第 7 章视图和索引,也串了,本页属于第 16 章。