结构

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

标签: mysql, 触发器

添加新评论