mysql触发器
结构
create trigger 触发器名 触发时间 触发操作 on 表名
for each row // 固定写法
begin
// 执行操作
end;
解释
触发器名:自定义一个触发器名称
触发时间:before|after,执行触发操作前执行还是后执行
触发操作:insert|delete|update,分别为新增|删除|修改操作
固定写法:表示任何一条记录上的操作满足触发事件都会触发该触发器,也就是说触发器的触发频率是针对每一行数据触发一次
执行操作:写入需要操作的sql语句。
操作数据:old|new,执行操作时可能要使用到当前操作行的数据则使用old.field|new.field
在INSERT型触发器中,new用来表示将要(before)或已经(after)插入的新数据;
在UPDATE型触发器中,old用来表示将要或已经被修改的原数据,NEW用来表示将要或已经修改为的新数据;
在DELETE型触发器中,old用来表示将要或已经被删除的原数据;
案例
create trigger test2_insert_after_test1 after insert on test2
for each row
begin
update test1 set count=count+1
where id = new.uid;
end
创建一个名为test2_insert_after_test1触发器,在test2表新增数据后,更新test1表id等于新增数据的uid值的count+1