《数据库系统原理》实验报告(10)
L_aavailqty INSERT; BEGIN
L_valuediff=NEW.quantity;/*获得插入订单明细项的订购数量*/ /*查询当前订单明细项对应零件供应记录中的可用数量*/ SELECT availqty INTO L_availqty FROM PartSupp
WHERE partkey=NEW.partkey AND suppkey=NEW.suppkey;
IF (L_availqty-L_valuediff >=0) THEN BEGIN
/*如果可用数量可以满足订单订购数量,则提示ENOUGH*/ RAISE NOTICE’Availqty quantity is ENOUGH’;
/*修改当前订单明细项对应零件供应记录中的可用数量*/ UPDATE PartSupp
SET availqty=availqty-L_valuediff
WHERE partkey=NEW.part AND suppkey=NEW.suppkey; END; ELSE
/*如果可用数量不能满足订单订购数量,则插入过程异常中断*/ RAISE EXCEPTION ‘Available quantity is NOT ENOUGH’; END IF; END;
(3)在Lineitem表上定义一个BEFORE DELETE触发器,当删除订单明细时,该订单明细项订购的数量要归还对应的零件供应记录。
CREATE OR REPLACE TRIGGER TRI_Lineitem_Quantity_UPDATE BEFORE DELETE ON Lineitem FOR EACH ROW AS
DECLARE
L_valuediff INSERT; L_availqty INSERT; BEGIN
/*获得删除订单明细项的订购数量*/ L_valuediff=-OLD.quantity;
/*修改当前订单明细项对应零件供应记录中的可用数量*/ UPDATE PartSupp
SET availqty=availqty-L_valuediff
WHERE partkey=NEW.partkey AND suppkey=NEW.suppkey; END;
(4)验证触发器TRI_Lineitem_Quantity_UPDATE。
/*查看1854号订单第1个明细项的零件和供应商编号、订购数量、可用数量*/ SELECT L.partkey,L.suppkey,L.quantity,PS.availqty FROM Lineitem L,PartSupp PS
WHERE L.partkey=PS.partkey AND L.suppkey=PS.suppkey AND L.orderkey=1854 AND L.linenumber=1;
/*激活触发器,修改1854号订单第1个明细项的订购数量*/ UPDATE Lineitem SET quantity=quantity+5; WHERE orderkey=1854 AND lineitem=1;
/*再次查看1854号订单第1个明细项的相关信息,以验证触发器是否起作用*、 SELECT L.partkey,L.suppkey,L.quantity,PS.availqty FROM Lineitem L,PartSupp PS
WHERE L.partkey=PS.partkey AND L.suppkey=PS.suppkey AND L.orderkey=1854 AND L.Linenumber=1;
3. 删除触发器
删除触发器TRI_Lineitem_Price_UPDATE。
DROP TRIGGER TRI_Lineitem_Price_UPDATE ON Lineitem;
四、实验心得
通过本次实验,进一步了解了触发器的定义,初步掌握了数据库触发器的设计和使用方法,成功动手设置了BEFORE触发器和AFTER触发器。实验过程中,由于基础知识薄弱与实践经验匮乏,遇到了不少难题,好在有老师和同学的帮助克服了困难。经过实践,更激励了我们继续努力学习,打好基础。
实验项目名称:数据库设计实验 实验学时: 4 同组学生姓名: 孟陈、陈晓雪、季佰军 实验地点: 1318 实验日期: 6.16 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
掌握数据库设计基本方法及数据库设计工具。
二、实验内容及过程
掌握数据库设计基本步骤,包括数据库概念结构设计、逻辑结构设计,物理结构设计,
数据库魔石SQL语句生成。能够使用数据库设计工具进行数据库设计。
三、实验结果与分析
设计一个采购、销售和客户管理应用数据库。其中,一个供应商可以供应多种零件,一种零件也可以有多个供应商。一个客户订单可以订购多种供应商供应的零件。客户和供应商都分属不同的国家,而国家按世界五大洲八大洋划分地区。请利用PowerDesigner或者ERwin等数据库设计工具设计该数据库。 …… 此处隐藏:161字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




