MySQL数据库总结(9)触发器
来源:互联网 发布:什么是数据生态圈 编辑:程序博客网 时间:2024/06/12 22:02
- 触发器 trigger 一触即发
- 四要素
- 创建触发器的语法
- 如何在触发器引用行的值
- 触发器里before和after的区别
- 应用场合
- 触发器 trigger 一触即发
触发器: trigger 一触即发
作用:监视某种情况并触发某种操作
能监视: 增.删.改
触发操作: 增.删.改
四要素:
监视地点、监视事件、触发时间、触发事件
创建触发器的语法:
Create trigger triggerNameAfter/before insert/update/delete on 表名For each row #这句话是固定的BeginSql语句 #一句或多句,insert/update/delete范围内End;
小技巧:修改结束符 delimiter $
删除触发器: Drop trigger 触发器名;
查看触发器: show triggers;
如何在触发器引用行的值
对于insert而言,新增的行 用new来表示,
行中的每一列的值,用new.列名来表示对于delete来说,原本有一行,后来被删除,
想引用被删除的这一行,用old,来表示old.列名,就可以引用被删除行中的值对于update来说,
被修改的行,
修改前的数据,用old来表示,old.列名引用被修改之前行中的值
修改后的数据,用new来表示,new.列名引用被修改之后行中的值
触发器里before和after的区别
After是先增,删,改 再触发
触发的语句晚于监视的增,删,改,无法影响前面的增删改动作Before是先触发,再增,删,改
触发的语句先于监视的增,删,改,发生,我们有机会判断,修改即将发生的操作.
应用场合:
1.当向一张表中添加或删除记录时,需要在相关表中进行同步操作。
比如,当一个订单产生时,订单所购的商品的库存量相应减少。2.当表上某列数据的值与其他表中的数据有联系时。
比如,当某客户进行欠款消费,
可以在生成订单时通过设计触发器判断该客户的累计欠款是否超出了最大限度。3.当需要对某张表进行跟踪时。
比如,当有新订单产生时,需要及时通知相关人员进行处理,
此时可以在订单表上设计添加触发器加以实现
典型案例:
对于所下订单进行判断,如果订单的数量>5,就认为是恶意订单,
强制把订单的商品数量改成5
监听地点 o表
监听事件 insert
触发事件 update
触发时间 before
目的,触发时间先于监视事件发生,并判断监视事件的数据
Create trigger tg5before insert on oFor each rowBeginIf new.much > 5 then Set new.much = 5;End if;Update g set num = num – new.much where id = new.gid;End$
- MySQL数据库总结(9)触发器
- MySQL数据库(主键、索引、外键、触发器...)
- mysql数据库 触发器
- mysql数据库触发器详解
- mysql数据库 触发器
- MySQL数据库 触发器
- MySQL数据库触发器
- MySQL数据库触发器(trigger)
- MySQL数据库之触发器
- 【数据库】MySQL触发器
- mysql数据库触发器(六)
- Mysql数据库中的触发器
- mysql数据库触发器详解
- oracle数据库触发器(trigger)用法总结
- 数据库触发器用法总结
- mysql触发器总结
- mysql触发器总结
- MySql触发器应用总结
- JavaScript核心基础语法
- 正则表达式小知识
- Buy One Get One Free--贪心
- 指针总结
- 第三周项目-本月有几天?
- MySQL数据库总结(9)触发器
- 活动管理器Activitycolletor(一键退出所有活动)
- 解决:eclipse报错:target runtime com.genuitec.runtime.generic.java is not defined
- LINUX和UNIX的关系是什么?
- C#匿名方法和lambda
- hdu1077 catching fish
- ps魔棒工具使用
- Sum to N--DFS
- [NOIP2008] 火柴棒等式