mysql触发器实验小结_mysql 触发器小结
触发器可以监视某种数据操作(insert/update/delete) 并触发(insert/update/delete)( 创建触发器4要素 监视地点 -----监视事件----触发时间----触发事件 触发器:trigger: 需求: 我们有商品表goods,订单表 ord,当下一个订单时,对应的商品要减少 分析: 监视谁:ord表 监视动作:insert 触发事件:after 触发事件:goods表中库存减少事件,update create trigger t1 after insert on ord for each row begin update goods xxxxx end; create table goods( gid int, name varchar(20), num smallint ); create table ord( oid int, gid int, much smallint ); insert into goods values (1,'cat',34), (2,'dog',65), (3,'pig',21); delimiter $ create trigger t1 after insert on ord for each row begin update goods set num=num-2 where gid=1; end$ 查看触发器: show triggers \G 删除已有的triggers drop trigger t1 insert(被监测的语句)产生的数据,能否在触发器中被引用 create trigger t2 after insert on ord for each row begin update goods set num=num-new.much where gid=new.gid; end$ ERROR 1235 (42000): This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' #在mysql编程中的for each row 是干什么的? 在oracle 触发器中,触发器分为语句级的触发器和行级触发器 比如 create trigger tn after update on xxtable for each row #每一行受影响,触发器都指行,叫做行级触发器 begin sqlN end$ 指行:update xxxtable se xxx=xxx where id>100; 影响100条 那么sqlN会被触发几次?100次 在oracle 中 for each 如果不写, 无论update语句一次影响了多少行,都只执行1次 mysql不支持语句级触发器。必须写上。 查看已有的triggers:show triggers 删除已有的triggers: drop trigger triggerName 撤回一个订单时: create trigger t3 after delete on ord for each row begin update goods set num=num+old.much where gid=old.gid; end$ #改订单数量 create trigger t4 before update on ord for each row begin update goods set num=num+old.much-new.much where gid=old.gid; end$ 思考:before 和after的区别 如果发生爆仓情况,如何处理呢? #在t2的基础上,完成much 与num的判断 create trigger t5 before insert on ord for each row begin declare rnum int; select num into rnum from goods where gid=new.gid; if new.much>rnum then set new.much=rnum; end if; update goods set num=num-new.much where gid=new.gid; end$
mysql触发器实验小结_mysql 触发器小结相关推荐
- mysql 查询优化实验报告_Mysql查询优化小结
数据类型 简单原则:更小更好,简单就好,避免NULL 1)整型如int(10)括号中的值与存储大小无关 2)实数decimal比float与double占用更大存储空间且CPU不能直接对decimal ...
- mysql安全性实验心得_mysql安全小结
sql的注入是一个很困扰人的问题,一些恶意攻击者可以利用sql注入来获取甚至是修改数据库中的信息,尤其是一些比较敏感的密码一类的数据. sql注入主要利用mysql 的注释将后续应正常执行的语句注释掉 ...
- mysql触发器如果提示_mysql 触发器
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...
- mysql创建删除触发器的时候_mysql触发器简介及如何创建和删除触发器
什么是mysql触发器 需要MySQL 5 对触发器的支持是在MySQL 5中增加的.因此,本章内容适用于MySQL 5或之后的版本. MySQL语句在需要时被执行,存储过程也是如此.但是,如果你想要 ...
- mysql触发器新元组_MySQL触发器-条件触发器语法
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 实验4触发器 (1)实验目的 掌握数据库触发器的设计和使用方法 (2)实验内容和要求 定义BEFOR ...
- mysql库表的触发器表名_MySQL 触发器,实现不同数据库,不同表名,表结构不同,数据实时同步...
创建触发器: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ...
- mysql触发器应用场景_MySQL触发器的使用场景及方法实例
触发器: 触发器的使用场景以及相应版本: 触发器可以使用的MySQL版本: 版本:MySQL5以上 使用场景例子: 每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写 ...
- mysql触发器访问网站_MySQL触发器使用-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
触发器:触发器的使用场景以及相应版本:触发器可以使用的MySQL版本:- 版本:MySQL5以上### 使用场景例子:1. 每当增加一个顾客到某个数据库表时,都检查其每当增加一个顾客到某个数据库表时, ...
- mysql触发器错误信息_MySQL 触发器错误_MySQL
bitsCN.com 使用Spring jdbctemplate时出错: view sourceprint?01 org.springframework.jdbc.UncategorizedSQLEx ...
最新文章
- R可视化删除ggplot2图中的网格线(Gridlines)
- mysql一张表两个索引字段是建两颗独立索引树吗?
- c语言深度解剖 pdf,c语言深度解剖(解密).pdf.pdf
- php设置session 生命周期,php会话(session)生命周期概念介绍及设置更改和回收
- 风控做得好,离不开这一项核心能力
- Centos之LAMP环境搭建
- Keil MDK利用 fromelf 实现axf 转 bin 的方法
- Nagios下载安装配置
- 外星人r7启动linux,外星人Alienware Aurora R7台式机装win7及bios设置教程(支持usb)
- 安卓开发用什么语言好!这是一份用心整理的Android面试总结,已拿offer入职
- coreldraw x8重新安装失败解决办法
- PM Q7声卡使用教程
- wia twain for java,c – 使用WIA或TWAIN扫描页面
- office 2016下载安装
- 面试技巧--国企银行篇
- R语言—方差分析和多重比较
- VTK从分割好的体数据获取等值面的方法(MarchingCube)
- WIN32 进程间通讯-共享内存
- Android 监听系统来电获取来电信息
- 澳洲纽卡斯尓大学计算机排名,澳洲纽卡斯尔大学计算机科学computer science专业排名第251~300名(2020THE泰晤士高等教育世界大学排名)...