先建两个,再看全部
十一列,横着放不下,结尾加 \G 竖着看。
重 点
Trigger、Event、Table、Timing 这四列就是建它时写的那四样。
知道更多
\G 是客户端的花样,告诉它竖着排,服务器根本看不见这两个字符。
十一列,横着放不下,结尾加 \G 竖着看。
Trigger、Event、Table、Timing 这四列就是建它时写的那四样。
\G 是客户端的花样,告诉它竖着排,服务器根本看不见这两个字符。
所有触发器的定义都躺在 information_schema 里。
表名是 TRIGGERS 有 S,课件第 24 页正文写的 TRIGGER 表少了一个 S。
系统表能用 WHERE 挑,SHOW 不能挑得这么细,这是它比 SHOW 强的地方。
查特定触发器就在系统表上加条件。
ACTION_STATEMENT 那一列就是 BEGIN…END 之间原样的那段代码。
ACTION_ORIENTATION 一栏为什么永远是 ROW?
删一个不存在的,报的是 Trigger does not exist。
第二次就报 1360。加上 IF EXISTS 只回一个 warning,不报错。
触发器不能改,要换内容只能先删再建,DROP 这一句往后天天用。
同一个库里触发器的名字不能重。
第一题建过 insert_sc_trigger 了,同名再建就是 1359。
换一张表挂,同名还行不行?
ON DELETE CASCADE 删掉的行,子表上的触发器一声不吭。
c1 空了,dlog 也是空的。行真的没了,触发器却没响。
外码的级联是存储引擎自己做的,绕过了触发器。靠触发器记账的表要当心这一条。
外码的级联是存储引擎自己做的,压根没走触发器那条路。
那想记全,级联该写在外码上还是写在触发器里?
删表的时候不用再一个个删它的触发器。
表没了,挂在它上面的触发器一起没,这是真机的规矩。
那把表改个名字呢,触发器还在不在?
把这一页学的三件事串成一条线走完。
开头三句 IF EXISTS 让这一题能反复跑,前面建过什么都不影响。
两次 COUNT 之间为什么不是差 3?