MySql触发器:触发器是一种和表操作有关的数据对象,当触发器所在表触发指定事件 ,将调用该触发器,即表操作时 触发器执行。
* 触发器的创建。
create trigger [触发器名字]
trigger time //触发时间
trigger _event on [表名]
for each row
begin
语句;
end
*1、trigger time 触发时机 before 和after
*2、trigger_event 触发事件 insert update delete
*3、for each row 在触发器中表示每行受影响,触发器都要执行,称之为行级触发器,MySql中必须书写。
*4、new ,old 表示触发器所在表中触发了触发器的那一行数据
*5、在insert型触发器中,new 用来表示将要插入的新数据。
*6、在update型触发器中,old用来表示将要修改的原始数据,new用来表示已经修改的数据。
*7、在delete型触发器中,old用来表示将要被删除的数据。
示例:
#insert触发器
drop trigger if exists trigger_tab1;
create trigger trigger_tab1
after insert on tab1
for each row
begin
insert into tab2(tab2_id) values (new.tab1_id);
end;
#delete触发器
drop trigger if exists trigger_tab1_del;
create trigger trigger_tab1_del
after delete on tab1
for each row
begin
delete from tab2 where tab2_id=old.tab1_id;
end;
#update触发器
drop trigger if exists trigger_tab1_up;
create trigger trigger_tab1_up
after update on tab1
for each row
begin
update tab2 set tab2_id = new.tab1_id where tab2_id = old.tab1_id;
end;
小提示:show triggers from 数据库名 :显示指定数据库下的触发器。