某公司要对其投放的自动售货机建立商品管理系统,其数据库的部分关系模式如下: 售货机:VEM(VEMno,Location),各属性分别表示售货机编号、部署地点; 商品:GooDs(Gno,Brand,Price),各属性分别表示商品编号、品

admin2018-04-19  30

问题 某公司要对其投放的自动售货机建立商品管理系统,其数据库的部分关系模式如下:
    售货机:VEM(VEMno,Location),各属性分别表示售货机编号、部署地点;
    商品:GooDs(Gno,Brand,Price),各属性分别表示商品编号、品牌名和价格;
    销售单:sALEs(Sno,vEMno,Gno,SDate,sTime),各属性分别表示销售号、售货机编号、
    商品编号、日期和时间。  ………
    缺货单:OOs(VEMno,Gno,SDate,STime),各属性分别表示售货机编号、商品编号、日期和
    时间。    ………
    相关关系模式的属性及说明如下:
    (1)售货机摆放固定种类的商品,售货机内每种商品最多可以储存10件。管理员在每天结束的时候将售货机中所有售出商品补全。
    (2)每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品的销售记录达到10条,则表明该售货机上该商品己售完,需要通知系统立即补货,通过自动向缺货单中添加一条缺货记录来实现。
    根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。
每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上
某种商品的销售记录达到10条,则自动向缺货单中添加一条缺货记录。需要用触发器来
实现缺货单的自动维护。程序中的GetTime0获取当前时间。
    CREATE___(h)__ OOS_TRG AFTER___(i)__ON SALES
    REFERENCING new row AS nrow
    FOR EACH ROW
    BEGIN
    INSERT  INTO OOS
    SELECT SALES.VEMno,___(j)__,GetTime()
    FROM SALES
    WHERE SALES.VEMno=nrow.VEMno AND SALES.Gno=nrow.Gno
    AND SALES.SDate=nrow.SDate
    GROUP BY SALES.VEMno,SALES.Gno,SALES.SDate
    HAVING count(*)>0 AND mod(count(*),10)=0 ;
    END

选项

答案(h)TRIGGER (i)INSERT (j)SALES.Gno,SALES.SDate

解析 本问题考查触发器的设计与应用。
    触发器是一个能由系统自动执行对数据库修改的语句。一个触发器由三部分组成:①事件,即对数据库的插入、删除和修改等操作。触发器在这些事件发生时,将开始工作;②条件,触发器将测试条件是否成立,若成立就执行相应的动作,否则就什么也不做;③动态,若触发器测试满足预定的条件,那么就由数据库管理系统执行这些动作。本题判断销售记录达到10条,则自动向缺货单中添加一条缺货记录。因此空(h)处应填入“TRIGGER”,(i)处应填入“INSERT”,而(j)处应填入SALES表中的两个必要属性“SALES.Gno”和“SALES.SDate”。
转载请注明原文地址:https://jikaoti.com/ti/8VN7FFFM
0

相关试题推荐
随机试题
最新回复(0)