数据库实验八 触发器实验

1.实验目的

掌握数据库触发器的设计和使用方法

2.实验内容和要求

定义 BEFORE 触发器和 AFTER 触发器。能够理解不同类型触发器的作用和执行原理,验证触发器的有效性。

3.实验步骤

(1)AFTER 触发器
①在 Lineitem 表上定义一个 UPDATE 触发器,当修改订单明细(即修改订单明细价格
extendedprice、折扣 discount、税率 tax)时,自动修改订单 Orders 的 TotalPrice,以保持数据一致性。
SQL语句:
在这里插入图片描述

查看触发器:
在这里插入图片描述

触发前查询:
在这里插入图片描述

在这里插入图片描述

修改订单明细:
在这里插入图片描述
在这里插入图片描述

触发后查询:
在这里插入图片描述

②在 Lineitem 表上定义一个 INSERT 触发器,当增加一项订单明细时,自动修改订单
Orders 的 TotalPrice,以保持数据的一致性。
SQL语句:
在这里插入图片描述

查看触发器:
在这里插入图片描述

插入订单明细:
在这里插入图片描述

插入前:
在这里插入图片描述

插入后:
查询:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

③在 Lineitem 表上定义一个 DELETE 触发器,当删除一项订单明细时,自动修改订单Orders 的 TotalPrice,以保持数据一致性。
SQL语句:
在这里插入图片描述

查看触发器:
在这里插入图片描述

删除明细:
在这里插入图片描述

删除前查询:
在这里插入图片描述

删除后查询:
在这里插入图片描述

(2)BEFORE 触发器
①在 Lineitem 表上定义一个 BEFORE UPDATE 触发器,当修改订单明细中的数量(quantity)时,先检查供应表 PartSupp 中的可用数量 availqty 是否足够。
SQL语句:
在这里插入图片描述

验证:
在没触发之前查询:
在这里插入图片描述
在这里插入图片描述

修改quantity:
在这里插入图片描述

再查询:
在这里插入图片描述

②在 Lineitem 表上定义一个 BEFORE INSERT 触发器,当插入订单明细时,先检查供应表 PartSupp 中的可用数量 availqty 是否足够。
SQL语句:
在这里插入图片描述

查询:
在这里插入图片描述

在这里插入图片描述

插入数据:
在这里插入图片描述

再查询:
在这里插入图片描述

③在 Lineitem 表上定义一个 BEFORE DELETE 触发器,当删除订单明细时,该订单明细项订购的数量要归还于对应的零件供应记录。
SQL语句:
在这里插入图片描述

查询:
在这里插入图片描述

删除:
在这里插入图片描述

再查询:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gui_bjyxszd/article/details/128492476