mysql学习之旅09-触发器
- 概念
触发器是一种基于事件驱动的处理方式,是一种联动机制,连锁反应。
程序员操作一条语句或一张表,触发器会自动运行操作几条相关联的语句或几张表。
触发器一般用在引用完整性,主表的数据有变动,附表的数据自动变更。
触发的事件:insert update delete
触发的时机:before after
使用:
- 创建触发器
CREATE TRIGGER 触发器名 触发时机[before/after] 触发事件[insert/update/delete]
on 表名 for each row
begin
sql语句(可以使用old和new关键字获取原数据和新数据)
end;
- 删除触发器
drop triggere 触发器名
sql实操:
//创建触发器
create trigger
account_update_trigger
after update
on
account
for each row
begin
insert into account_log values(
null, old.card, old.money, new.money, now()
);
end;
//删除触发器
drop trigger account_update_trigger;
//money修改的差值小于等于1000记录日志,大于1000阻止本次修改。
create trigger account_update_trigger
before update
on account for each row
begin
if abs(old.money - new.money) > 1000 then
set new.money = old.money;
else
insert into account_log values(
null, old.card_id, old.money, new.money, now()
);
end if;
end;