mysql触发器四要素;
- 监视对象:监视那张表?
- 监视操作:监视表的insert,update,delete操作
- 触发操作:执行什么操作?
- 触发时间:after,before
创建触发器语法:
create trigger trigger_name(触发器名称,随便起)
after/before(触发时间) insert/update/delete(监视操作) on table_name(监视对象)
begin
sql语句(触发操作)
end
注意:
对insert而言,新插入的行用new来表示,行中每一列的值用new.列名来表示
对于delete而言,删除的行用old来表示,行中每一列的值用old.列名来表示
对于update而言,被修改的行,修改前的数据,用old来表示,old.列名;修改后的数据,用new来表示,new.列名
after是先完成数据的增删改,再触发,触发中的语句晚于数据的增删改;
before是先触发再做数据的增删改,触发中的语句先于监视的增删改;
删除触发器语法:
Drop trigger triggerName;
显示已有触发器语法:
Show triggers
举例:创建触发器insert_tri,当表a中插入新记录时,往表b也添加一条记录
create trigger insert_tri
after insert on a
begin
inser into b
values(new.列1,new.列2........);
end