触发器操作

来源:互联网 发布:ubuntu配置ip 编辑:程序博客网 时间:2024/05/17 00:09

1、作用
我们可以监视某表的变化,当发生某种变化时,触发某个动作
eg。观察以下场景,电子商城有商品表和订单表
这里写图片描述

需要完成下单和减少库存的逻辑!

  1. insert into o(gid,num) values(2,3);
  2. update g set goods_num=goods_num-3 where id=2;

用触发器可以解决上述问题!

2、触发器语法
四要素:

  1. 监视事件(insert/update/delete)
  2. 触发时间(after/before)
  3. 监视地点(table)
  4. 触发事件(insert/update/delete)
create trigger trig1 after/before   insert/update/delete on 表名for each row beginsql 语句   #一句或多句  insert/update/delete 范围内end

问题:如何在触发器中引用行的值?

  • 对于insert,新增的行用new来表示,行中的每一列的值用new.列名来表示
  • 对于delete而言,原来有一行,后来删除。想引用被删除的这一行,用old来表示,old.列名就可以引用被删行的值
  • 对于update而言,被修改的行,修改前数据用old来表示,old.列名引用被修改之前行中的值,修改后的数据,用new表示,new.列名引用被修改之后行中的值。
  • -
0 0
原创粉丝点击