如果没有插入行,是否应触发(AFTER INSERT)触发器?
即使没有插入INSERT IGNORE ...
或INSERT ... ON DUPLICATE KEY UPDATE ...
的行,也会触发触发器
这种行为是否正常?
插入行后,或者在进行INSERT查询后,AFTER INSERT是否意味着什么? 测试显示第二个,但为什么?
答案 0 :(得分:2)
插入行后或插入后,AFTER INSERT是否有意义 已经查询了?
每MySQL Spec(具体摘录)
Triger语法:trigger_time:{BEFORE | AFTER}
trigger_time是触发动作时间。它可以是之前或之后 表示触发器在每行之前或之后激活 修改。
•INSERT:每当插入新行时触发器都会激活 表;例如,通过INSERT,LOAD DATA和REPLACE语句。
这样,插入行后触发器就会被激活。
你看到的行为也在MySQL文档中得到了评论
一个可能令人困惑的例子是INSERT INTO ... ON DUPLICATE KEY UPDATE ...语法:BEFORE INSERT触发器激活 每一行,后跟一个AFTER INSERT触发器或两者 BEFORE UPDATE和AFTER UPDATE触发后,取决于是否存在 是该行的重复键。