第10课:触发器

触发器应用于两个关联操作
当A操作之后,触发执行B操作
比如仓库库存与用户订单这种使用场景

触发操作可以是对数据表中数据增删改任何一个操作,而且可以选择是在操作前执行还是操作后执行
慎用触发器:主要因为设置触发器之后,表之间的耦合增加,如果A操作会触发修改B表数据,一个不知情的人修改了B表的字段,会导致触发器失效,直接导致A表操作也不能正常进行,因为触发器的操作都是绑定的

触发器语法:
create trigger triggerName
    after/before insert/update/delete on 表名
for each row
begin
    sql语句;
end;

触发器中的new old
对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用

例子:
create trigger godeye
after insert on orders
for each row 
begin
update goods set num=num-new.much where id=new.gid;
end;

表中插入数据,触发器被触发
insert into orders (gid, much) values(1,3)

删除触发器
drop trigger godeye