数据库实验:触发器的使用

一、实验目的

1、能够按要求编写相应的触发器实现数据库完整性控制并验证

2、扩展学习Instead of触发器,掌握其创建和使用方法


二、实验内容

1. 创建触发器,当修改Orders表中某行数据的mShippingCharges和mGiftWrapCharges时,要修改相应行的总价mTotalCost,以保证合计总花费结果的正确性。

(1)sql语句

(2) 执行结果


 2. 创建after触发器,禁止修改ToysBrand表的cBrandid列的值。

(1)sql语句

 (2)执行结果


3. 创建Instead of触发器,禁止对Toys表进行删除操作。

(1)sql语句

 (2)执行结果


4. 创建触发器,在Toys表中插入数据或者修改数据时,要保证siLowerAge小于siUpperAge的值,否则不能插入或修改。

(1)sql语句

(2)执行结果


 5. 创建触发器,禁止对Shoppers表进行任何更新(增删改)操作。

(1)sql语句

(2) 执行结果


6. 当Toys表中的玩具价格mToyRate增加时,创建一个触发器使得Toys表的mToyRate的属性的平均值不超过28美元,并且最大值不超过55美元。


7. 对Shipment表进行插入操作或者修改操作时,应保证dShipmentDate小于当前日期。

(1)sql语句

 (2)执行结果


8. Toys表和Toybrand表存在相同属性cBrandid,不使用外键约束方式,仅使用触发器来实现两个表之间对于删除操作的参照完整性规则(两种方式:Restrict和Cascade),分别编写触发器。

(1)方法1:Restrict

1)Toys表的Restrict触发器

2) Toybrand表的Restrict触发器

 

(2)方法2:Cascade

1)Toys表的Cascade触发器

2)Toybrand表的Cascade触发器

 

(3)执行结果

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值