MySQL触发器(trigger):监视某种情况并触发某种操作

一:四要素

触发时间:before/after

地点:table

监视操作:insert/update/delete

触发操作:insert/update/delete

二:创建触发器

delimiter $     #将sql结束符改为$  方便写触发的sql语句

create trigger triggerName after/before insert/update/delete on tableName

for each row

begin

sql语句;   #想要触发的语句

end$

測试表:商品表(g)。订单表(o)

三:删除监视器

drop trigger triggerName

四:下定单(o)。商品表(g)数据触发更新

create trigger tg after insert on o

for each row

begin

update g set num=num-new.much where id=new.gid;

end$

PS:对于监视操作insert 而言,新增的行用new 表示

行中的每一列的值,用new.列名 取出

五:删除一个订单,商品表对应添加

create trigger tg after delete on o

for each row

begin

update g set num=num+old.much where id=old.gid;

end$

六:改动一个订单。商品表对应改变

create trigger tg after update on o

for each row

begin

update g set num=num+old.much-new.much where id=old.gid;

end$

七:after与before差别

after 是先完毕数据的增删改,再触发,前面的数据操作完毕

before是先触发,推断触发的条件是否满足,再对数据进行增删改操作

最新文章

  1. 如何对Azure磁盘性能进行测试
  2. hibernate框架之-查询结果集返回类型
  3. POJ 2201 Cartesian Tree ——笛卡尔树
  4. sql 大数据库 插入超时问题解决
  5. Swift UICollectionView 简单使用
  6. OnePlus One(一加1)刷机Kali Nethunter完整教程
  7. 死锁 android ANR
  8. php 汉字转拼音 [包含20902个基本汉字+5059生僻字]
  9. 将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组
  10. 201521123087 《Java程序设计》第5周学习总结
  11. vue项目基本流程
  12. Django系统
  13. Problem UVA11134-Fabled Rooks(贪心)
  14. Spring+Mybatis+SpringMVC+Atomikos多数据源共存+不同数据库事物一致性处理
  15. WSDL(Web服务描述语言)详细解析(全文转载学习用)
  16. python3 的 round 函数的 练习
  17. KbmMW 4.5 发布
  18. T-SQL备份数据库恢复
  19. 远程登录与文件传输指令——ssh与scp
  20. ASP.NET底层与各个组件的初步认识与理解 (转载)

热门文章

  1. SPI通信
  2. iOS 拍照保存到相册
  3. BZOJ 1053 反素数ant
  4. [Swust OJ 491]--分数的位置(简单版)
  5. javascript date部分
  6. MVC 扩展 Html.ImageFor
  7. Python 2.7 学习笔记 元组的使用
  8. UVA 10603 Fill(正确代码尽管非常搓,网上很多代码都不能AC)
  9. 在Eclipse/MyEclipse中安装spket插件
  10. 蓝牙Profile的概念和常见种类