在DB2数据库操作中,我们常常会使用到触发器,这对于我们初学者来说似乎有一点点的难度。不过没关系,本文我们就介绍了一些DB2数据库触发器方面的一些知识,并给出了一个创建触发器的实例,对于初学者来说,如果您不太懂,也可以直接套用下面的实例来完成触发器的创建。接下来就让我们一起来了解一下这部分内容。
建一个触发器,应包含以下部分:
触发器名字:……
触发器触发事件:insert,delete,update
激活时间:before,after
粒度:for each statement,for each row
过渡变量:
old row:表示触发事件之前被修改的值:
new row表示触发事件之后被修改的值
old table表示触发事件之前全部被修改行的一个只读假想表
new table表示触发事件之后全部被修改行的一个假想表
触发条件:由WHEN开始,可包含一个或多个谓词,可包含过渡变量和子查询。
触发体:由一个或多个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