阅读以下说明,根据要求回答下列问题。
[说明]
某商场客户一商品数据库中的各关系模式如下。
客户(客户号,姓名,性别,年龄)
商品(商品号,名称,型号,品牌,单价,库存)
销售(流水号,
客户号
,商品号
,数量,日期)采购(商品号,数量)
其中:
(1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0的约束。
(2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。
现假定已经建立了该数据库及上述4个基本表。
对商品表增加最小库存属性。若修改某商品的库存时,使得库存值小于或等于其最小库存值,则向采购表插入一条记录,要求采购的数量是该商品最小库存值的两倍再加上10。下面是完成该功能的SQL语句,请将空缺部分补充完整。
ALTER TABLE 商品 ______;
CREATE TRIGGER 采购-trigger AFTER ______
REFERENCING NEW ROW AS nrow
FOR EACH ROW
WHEN ______
BEGIN
INSERT INTO 采购
VALUES(______)
END
参考答案:ADD 最小库存 INT(注:INT处可为INTEGER)
UPDATEOF 库存 ON 商品或UPDATE ON 商品
nrow.数量<=nrow.最小库存
nrow.商品号,nrow.最小库存*B+A0
解析:这是一道要求读者掌握SQL中的数据定义语言(DDL)的综合应用题,本题的解答思路如下。
对于“采购”关系模式,属性“商品号”和“数量”是其主键,属性“商品号”还是其外键。
对商品表增加最小库存属性,此时要修改商品表结构,增加一个属性。新增列的语法为ADD<新列名><数据类型>[完整性约束]。此处新列名为最小库存,类型为整数类型(INTEGER或INT)。由于题目并未要求定义完整性约束,因此空缺处应填入“ADD 最小库存 INT”。
当有商品销售时,商品的库存随之逐步减少。当商品库存小于等于其最小库存时,则采购相应的商品,数量为最小库存的两倍加上10。可以通过建立触发器来完成此应用需求,空缺处填写触发事件,即商品表上或者商品表的库存信息更新时,若满足触发条件,即商品库存小于等于其最小库存,则执行触发动作,即插入一条采购信息记录。空缺处应填入“UPDATE OF 库存 ON 商品”;空缺处应填入触发条件,即“nrow.数量<=nrow.最小库存”;空缺处应填入触发器执行时应作的动作“nrow.商品号,nrow.最小库存*2+10”。