首页 > 代码库 > mysql触发器

mysql触发器

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