触发器实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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来定义结束符,@定义一个临时变量,但是在验证触发器有没有成功时我的一直不成功,问了同学后才解决了问题,这次试验学到了很多知识,更好的理解了触发器。

相关文档
最新文档