实验六触发器实验一.实验目的:掌握数触发器的使用二.实验内容和要求定义BEFORE触发器和UPDATE触发器。能够理解不同类型触发器的作用和执行原理,验证触发器的有效性三.实验重点和难点实验重点:触发器的定义实验难点:利用触发器实现较为复杂的用户自定义完整性四.实验内容1、AFTER触发器(1)在Lineitem表上定义一个UPDATE触发器,当修改订单明细(即修改订单明细截个extendprice、折扣discount、税率tax)时,自动修改Orders的TotalPrice,以保持数据的一致性。Totalprice=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表上定义一个BEFOREUPDATE触发器,当修改订单明细中的数量(quantity)时,先检查PartSupp中的可用数量availqty是否足够(2)在Lineitem表上定义一个BEFOREINSERT触发器,当插入订单时,先检查PartSupp中的可用数量availqty是否足够(3)在Lineitem表上定义一个BEFOREINSERT触发器,当删除订单时,该订单明细项订购的数量要归还对应的零件供应记录(4)验证触发器lineitem_quantity_update/*查看3号订单第一个明细项的零件和供应商编号、订购数量、可用数量*//*激活触发器:修改3号订单第一个明细项额订购数量*//*再次查看3号订单第一个明细项的相关信息,已验证触发器是否起作用*/删除触发器删除触发器lineitem_price_update.五.实验总结通过这次试验,我基本掌握了触发器的使用,需要用到delimiter来定义结束符,@定义一个临时变量,但是在验证触发器有没有成功时我的一直不成功,问了同学后才解决了问题,这次试验学到了很多知识,更好的理解了触发器。