(1)在Lineitem表上定义一个UPDATE触发器,当修改订单明细时,自动修改订单Orders的Totalprice,以保持数据一致性。Totalprice=totalprice+extendedprice*(1-discount)*(1+tax))delimiter$droptriggerifexistsTRI_Lineitem_Price_UPDATE$createtriggerTRI_Lineitem_Price_UPDATEAFTERUPDATEONLineitemforeachrowBEGINdeclareL_valuediffREAL;SetL_valuediff=*(1-)*(1+)-*(1-)*(1+);updateorderssettotalprice=totalprice+L_valuediffwhereorderkey=;END$delimiter;(2)在Lineitem表上定义一个INSERT触发器,当插入一项订单明细时,自动修改订单Orders的Totalprice,以保持数据一致性。(3)在Lineitem表上定义一个DELETE触发器,当删除一项订单明细时,自动修改订单Orders的Totalprice,以保持数据一致性。(4)验证触发器TRI_Lineitem_Price_UPDATE查看4996号订单的含税折扣总价totalprice激活触发器:修改订单4996号订单第一个明细项的税率(tax),%再次查看订单的含税折扣总价是否有变化,如有变化,则是触发器起作用。(1)在Lineitem表上定义一个UPDATE触发器,当修改订单明细中时,先检查供应表PartSupp中的可用数量availqty是否足够。delimiter$droptriggerifexistsTRI_Lineitem_Quantity_UPDATE$createtriggerTRI_Lineitem_Quantity_UPDATEBEFOREUPDATEONLineitemforeachrowBEGINdeclareL_valuediffINT;declareL_availqtyINT;SetL_valuediff=-;selectavailqtyintoL_availqtyfrompartsuppwherepartkey==;if
触发器实验(学生) 来自淘豆网www.taodocs.com转载请标明出处.