SQL 触发器

一、  常见的触发器事件    有三种:分别应用于Insert , Update , Delete 事件。

二、  语法

          a)  创建触发器:

           create trigger 名称 类型 after insert on (指定的触发器名称) 表名for each row

           begin(开始)

                       sql语句

          end(结束)

        b) 删除触发器:  drop trigger 触发器名称 ;

  1. 触发器的名称要唯一不能重复

  2. after 在指定的操作后执行触发语句

  3. before 在指定的操作后执行触发语句

  4. 相关连得触发数据的类型要相同

  5. #应用新行中每一列的值    new.列名 #应用刚删除的一列的值    old.列名

  6. 总结  触发器四步骤:监视地点  监视事件 触发事件 触发时间

三、实例

数据库

#创建添加前触发器
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;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值