下面是创建订单关系的SQL语句,订单编号唯一识别一个订单,用户名为订购图书的会员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。 CREATE TABLE 订单( 订单编号 CHAR(6) (a) 用户名V

admin2010-04-08  33

问题 下面是创建订单关系的SQL语句,订单编号唯一识别一个订单,用户名为订购图书的会员用户名,且不能为空。要求订购日期不能大于出货日期。请将空缺部分补充完整。
   CREATE TABLE 订单(
   订单编号  CHAR(6)  (a)  
   用户名VARCHAR(40)NOT NULL  (b),
   销售额FLOAT,
   订购日期DATE NOT NULL,
   出货日期DATE  (c));
会员订购图书后,将本次订购的销售额累加到该会员的消费额中,并按照本次订单的销售额计算积分累加到该会员的积分中(每20元增加1个积分,不足20元不计入积分)。下面用触发器实现该需求,请填充空缺部分。
   CREATE TRIGGER会员积分—TRIGGER AFTER  (n)  
   REFERENCING NEW ROW AS NROW
   BEGIN
       UPDATE会员
       SET消费额=消费额+NROW.销售额,  (o)  
       WHERE用户名=NROW.用户名
   END

选项

答案(n)INSERT ON订单 (o)积分=积分+INT(NROW.销售额/20)

解析 本题考查SQL的触发器机制。触发器是通过事件触发而执行的,事件指的是对某个关系的插入、删除或更新。当触发器被事件激活时,并不是立即执行,而是检测触发器的条件,若条件满足则执行触发器定义的动作。因此,创建一个触发器时,必须指定:触发器名称、在其上定义触发器的关系(表)、触发器将何时激发、触发器执行时应作的动作。本题中触发器定义的事件为会员订购图书,即插入一个订单记录,因此(n)的答案为INSERT ON订单。执行的动作是累加会员的消费额,并按照规则把本次订单的销售额计算为积分,更新会员的积分,因此(o)的答案为积分=积分+INT(NROW.销售额/20)。
转载请注明原文地址:https://jikaoti.com/ti/NPN7FFFM
0

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