触发器实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六触发器实验
一.实验目的:
掌握数触发器的使用
二.实验内容和要求
定义BEFORE触发器和UPDATE触发器。能够理解不同类型触发器的作用和执行原理,验证触发器的有效性
三.实验重点和难点
实验重点:触发器的定义
实验难点:利用触发器实现较为复杂的用户自定义完整性
四.实验内容
1、AFTER触发器
(1)在Lineitem表上定义一个UPDATE触发器,当修改订单明细(即修改订单明细截个extendprice、折扣discount、税率tax)时,自动修改Orders 的TotalPrice,以保持数据的一致性。
Total price = totalprice+extendedprice*(1-discount)*(1+tax)
(2)在lineitem表上定义一个INSERT触发器,当增加一项订单明细时,自动修改该订单Orders的TotalPrice,以保持数据的一致性
(3)在Lineitem表上定义一个DELETE触发器,当删除一项订单明细时,自动修改订单Orders中的TotalPrice,以保持数据的一致性
(4)验证触发器lineitem_price_update
/*查看2号订单的含税折扣总价totalprice*/
/*激活触发器:修改2号订单第一个明细项的税率,该税率增加0.5%*/
/*再次查看2号订单的含税折扣总价是否有变化*/
2、BEFORE触发器
(1)在Lineitem表上定义一个BEFORE UPDATE触发器,当修改订单明细中的数量(quantity)时,先检查PartSupp中的可用数量availqty是否足够
(2)在Lineitem表上定义一个BEFORE INSERT触发器,当插入订单时,先检查PartSupp中的可用数量availqty是否足够
(3)在Lineitem表上定义一个BEFORE INSERT触发器,当删除订单时,该订单明细项订购的数量要归还对应的零件供应记录
(4)验证触发器lineitem_quantity_update
/*查看3号订单第一个明细项的零件和供应商编号、订购数量、可用数量*/ /*激活触发器:修改3号订单第一个明细项额订购数量*/
/*再次查看3号订单第一个明细项的相关信息,已验证触发器是否起作用*/ 删除触发器
删除触发器lineitem_price_update.
五.实验总结
通过这次试验,我基本掌握了触发器的使用,需要用到 delimiter来定义结束符,@定义一个临时变量,但是在验证触发器有没有成功时我的一直不成功,问了同学后才解决了问题,这次试验学到了很多知识,更好的理解了触发器。