嘿所以我正在学习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 更新项目后 对于每一行
但在那之后我迷路了。
答案 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;