【IT168 技术】在DB2数据库操作中,我们常常会使用到触发器,这对于我们初学者来说似乎有一点点的难度。不过没关系,本文我们就介绍了一些DB2数据库触发器方面的一些知识,并给出了一个创建触发器的实例,对于初学者来说,如果您不太懂,也可以直接套用下面的实例来完成触发器的创建。接下来就让我们一起来了解一下这部分内容。
建一个触发器,应包含以下部分:
1.触发器名字:……
2.触发器触发事件:insert,delete,update
3.激活时间:before,after
4.粒度:for each statement,for each row
5.过渡变量:
old row:表示触发事件之前被修改的值:
new row表示触发事件之后被修改的值
old table表示触发事件之前全部被修改行的一个只读假想表
new table表示触发事件之后全部被修改行的一个假想表
6.触发条件:由WHEN开始,可包含一个或多个谓词,可包含过渡变量和子查询。
7.触发体:由一个或多个SQL语句组成。
创建DB2触发器的一个实例:
CREATE TRIGGER REORDER
AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS
REFERENCING NEW AS N_ROW
FOR EACH ROW MODE DB2SQL
WHEN (N_ROW.ON_HAND < 0.10 * N_ROW.MAX_STOCKED
AND N_ROW.ORDER_PENDING = 'N')
BEGIN ATOMIC
VALUES(ISSUE_SHIP_REQUEST(N_ROW.MAX_STOCKED -
N_ROW.ON_HAND,
N_ROW.PARTNO));
UPDATE PARTS SET PARTS.ORDER_PENDING = 'Y'
WHERE PARTS.PARTNO = N_ROW.PARTNO;
END
AFTER UPDATE OF ON_HAND, MAX_STOCKED ON PARTS
REFERENCING NEW AS N_ROW
FOR EACH ROW MODE DB2SQL
WHEN (N_ROW.ON_HAND < 0.10 * N_ROW.MAX_STOCKED
AND N_ROW.ORDER_PENDING = 'N')
BEGIN ATOMIC
VALUES(ISSUE_SHIP_REQUEST(N_ROW.MAX_STOCKED -
N_ROW.ON_HAND,
N_ROW.PARTNO));
UPDATE PARTS SET PARTS.ORDER_PENDING = 'Y'
WHERE PARTS.PARTNO = N_ROW.PARTNO;
END
关于DB2数据库触发器的知识就介绍到这里了,希望您有所收获。