一、 常见的触发器事件 有三种:分别应用于Insert , Update , Delete 事件。
二、 语法
a) 创建触发器:
create trigger 名称 类型 after insert on (指定的触发器名称) 表名for each row
begin(开始)
sql语句
end(结束)
b) 删除触发器: drop trigger 触发器名称 ;
-
触发器的名称要唯一不能重复
-
after 在指定的操作后执行触发语句
-
before 在指定的操作后执行触发语句
-
相关连得触发数据的类型要相同
-
#应用新行中每一列的值 new.列名 #应用刚删除的一列的值 old.列名
-
总结 触发器四步骤:监视地点 监视事件 触发事件 触发时间
数据库
#创建添加前触发器
create trigger aa before insert on o for each ROW
BEGIN
if new.much>(select num from g where g.gid=new.gid) THEN
set new.much = (select num from g where g.gid=new.gid);
update g set num = num - num where g.gid=new.gid;
ELSE
update g set num = num - new.much where g.gid=new.gid;
end if;
END
#创建删除触发器
create trigger del after delete on o for each ROW
BEGIN
update g set num = num+old.much where gid=old.gid;
END
#创建修改触发器
create trigger save before update on o for each ROW
BEGIN
if new.much>(select num from g where g.gid=new.gid)+old.much THEN
set new.much = (select num from g where g.gid=new.gid)+old.much;
update g set num = num-num where g.gid=new.gid;
ELSE
update g set num =num+old.much-new.much where g.gid=new.gid;
end if;
END
#删除触发器
drop trigger aa;