Mysql触发器
2017-05-18 21:51
127 查看
触发器是一类特殊的事务 ,能够监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete)。
看下面事件:
完毕下单与降低库存的逻辑
Insert into o (gid,num) values (2,3); // 插入语句
Update g set goods_num = goods_num - 3 where id = 2;// 更新过程
这两个逻辑能够看成一个总体,或者说, insert ---> 引来 update
用触发器能够解决上述问题.
我们能够监视某表的变化,当发生某种变化时,触发某个操作.
创建触发器的语法
Create trigger triggerName
After/before insert/update/delete on 表名
For each row #这句话是固定的
Begin
Sql语句; # 一句或多句,insert/update/delete范围内
End;
删除触发器的语法:
Drop trigger 触发器名
查看触发器
Show triggers
怎样在触发器引用行的值
对于insert而言, 新增的行 用new 来表示,
行中的每一列的值 ,用new.列名来表示.
对于 delete来说, 原本有一行,后来被删除,
想引用被删除的这一行,用old,来表示, old.列名,就能够引用被删行中的值.
对于update来说,
被改动的行,
改动前的数据 ,用 old来表示, old.列名引用被改动之前行中的值
改动后的数据,用new 来表示, new.列名引用被改动之后行中的值
触发器里after 和before的差别
After 是先完毕数据的增,删,改再触发,
触发的语句晚于监视的增,删,改,无法影响前面的增删修改作.
Before是先完毕触发,再增删改,
触发的语句先于监视的增,删,改发生,我们有机会推断,改动即将发生的操作.
典型案例:
对于所下订单,进行推断,假设订单的数量 > 5 ,就觉得是恶意订单,
强制把所订的商品数量改成5
查看哪些触发器:
看下面事件:
完毕下单与降低库存的逻辑
Insert into o (gid,num) values (2,3); // 插入语句
Update g set goods_num = goods_num - 3 where id = 2;// 更新过程
这两个逻辑能够看成一个总体,或者说, insert ---> 引来 update
用触发器能够解决上述问题.
我们能够监视某表的变化,当发生某种变化时,触发某个操作.
创建触发器的语法
Create trigger triggerName
After/before insert/update/delete on 表名
For each row #这句话是固定的
Begin
Sql语句; # 一句或多句,insert/update/delete范围内
End;
删除触发器的语法:
Drop trigger 触发器名
查看触发器
Show triggers
怎样在触发器引用行的值
对于insert而言, 新增的行 用new 来表示,
行中的每一列的值 ,用new.列名来表示.
对于 delete来说, 原本有一行,后来被删除,
想引用被删除的这一行,用old,来表示, old.列名,就能够引用被删行中的值.
对于update来说,
被改动的行,
改动前的数据 ,用 old来表示, old.列名引用被改动之前行中的值
改动后的数据,用new 来表示, new.列名引用被改动之后行中的值
触发器里after 和before的差别
After 是先完毕数据的增,删,改再触发,
触发的语句晚于监视的增,删,改,无法影响前面的增删修改作.
Before是先完毕触发,再增删改,
触发的语句先于监视的增,删,改发生,我们有机会推断,改动即将发生的操作.
典型案例:
对于所下订单,进行推断,假设订单的数量 > 5 ,就觉得是恶意订单,
强制把所订的商品数量改成5
查看哪些触发器:
相关文章推荐
- MYSQL 触发器的高级使用
- mysql触发器笔记
- Mysql入门(十二)之触发器与函数
- mysql5.0触发器(参考)
- mysql 触发器
- mysql触发器
- mysql 触发器
- mysql 基本操作 触发器、锁、事物、分布式事物、sql安全问题、sql mode详解 (第五章)
- MYSQL触发器的操作
- MySql触发器之--主表记录删除并备份以及相关联子表记录自动删除
- mysql 触发器 存储过程 java调用
- MySQL触发器使用详解
- MySQL触发器
- mysql 触发器学习
- mysql触发器
- mysql触发器的实际应用
- mysql触发器的使用
- MySQL与Oracle 差异比较之六触发器
- MySQL触发器
- mysql之触发器before和after的区别