Mysql触发器 before 与after的区别

MySQL触发器语法
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW trigger_stmt
trigger_time:触发动作时间,可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。BEFORE update能否取到new.字段值?BEFORE AFTER使用时的区别?
Before与After区别:before:(insert、update)可以对new进行修改,after不能对new进行修改。两者都不能修改old数据。
在本表插入字段值需要用new计算,只能用before,在别的表中记录插入成功记录或统计插入的条数用after。
trigger_event:激活触发程序的语句类型。
INSERT:将新行插入表时激活触发程序,如INSERT、LOAD DATA和REPLACE语句。
UPDATE:更改某一行时激活触发程序,如UPDATE语句。
DELETE:从表中删除某一行时激活触发程序,如DELETE和REPLACE语句
trigger_stmt:触发程序激活时执行的语句。如果你打算执行多个语句,可使用BEGIN ... END复合语句结构。

你可能感兴趣的:(Mysql触发器 before 与after的区别)