不正狼 发表于 2016-11-19 03:59:01

DB2控制中心创建触发器

  转自:http://wly719.iyunv.com/blog/502578
  由于公司项目的需要,让我这个对db2一点不通的人来写个触发器。没办法,查资料,现在终于有点小成果,记录下。
在触发器上右击->创建,出现下面界面

创建触发器的名字,选择表视图模式,表视图名称


选择已触发操作,出现界面


由于之前选择执行触发操作是插入,所以只有新行相关名,在下面的已触发的操作里面写触发语句,触发器的语句要求比较严格,有很多的限制。
贴一个最简单的例子
/*
作用:当dest表的字段ziduan1的值>110的话,向src表中插入数据120,120,120,否则抛出错误,错误编号好像必须是5位
*/
CREATE TRIGGER ADMINISTRATOR.TRIGGER_DEST AFTERINSERTON ADMINISTRATOR.DESTREFERENCINGNEW AS NEWROWFOR EACH ROWMODE DB2SQL
BEGIN ATOMIC
DECLARE NEWSTR VARCHAR(22);
SET NEWSTR=NEWROW.ZIDUAN1;
IF (NEWSTR>110) THEN insert into src values('120','120','120');ELSE SIGNAL SQLSTATE '22222' ('UNSECCFULL'); END IF;
END
结果如下:

点击确定就成功。

在试验的过程中也遇到了很多的问题,
1:BEFORE 触发器中触发的 SQL 语句不能包括:
    -   修改 SQL 数据的表函数
    -   嵌套的 DELETE、INSERT、MERGE 或 UPDATE 语句
页: [1]
查看完整版本: DB2控制中心创建触发器