DB2触发器说明

时间:2011-11-22 05:10:04

标签: sql triggers db2

嘿所以我正在学习DB2中的触发器。我错过了我们讨论的课程,但我有一个示例问题要做以理解它:

创建一个触发器程序,当您添加,更改或删除任何项目记录并在订单文件中产生总值时,将触发并总计项目值(QTY * COST / PRICE)。

我的表名是“Items”,列是[Ordernum,Itemnum,ItemDesc,QTYORD,Date,Cost]

有人可以解释你是怎么做的吗?我试着看这里:http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0000931.html但我有点困惑......

我知道你应该这样做:

创建TRIGGER Total_Item_Values    更新项目后    对于每一行

但在那之后我迷路了。

1 个答案:

答案 0 :(得分:1)

我实际上最终得到了它。以下是它的部分内容。

CREATE TRIGGER Total_Item_Values 
   AFTER UPDATE ON ITEMS 
   REFERENCING NEW AS N
   FOR EACH ROW
   MODE DB2ROW

BEGIN ATOMIC
   UPDATE ORDER
   SET DOLLARS = (SELECT SUM(COST*QTYORD) 
   FROM ITEMS I WHERE N.ORDERNUM = I.ORDERNUM
   GROUP BY I.ORDERNUM)
WHERE N.ORDERNUM = O.ORDERNUM;
    END;