首页 / MYSQL / Mysql高级之触发器_MySQL
Mysql高级之触发器_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql高级之触发器_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1359字,纯文字阅读大概需要2分钟。
内容图文
![Mysql高级之触发器_MySQL](/upload/InfoBanner/zyjiaocheng/580/d29bbfbba90d4b4198617b372d590bbc.jpg)
看以下事件:
完成下单与减少库存的逻辑
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高级之触发器_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。