【发布时间】:2018-04-11 15:35:34
【问题描述】:
我正在尝试在 DB2 (AS400) 中创建一个触发器,以便在另一个表上触发插入/删除时在表中插入/删除一行,但我需要使用有关触发器表的信息。
我想要的例子是这样的(表 1 和表 2 中的第 1 列在表 2 中相同且唯一):
CREATE TRIGGER MY_TRIGGER
AFTER INSERT OR DELETE ON DB1.TABLE1
BEGIN
IF INSERTING
THEN INSERT INTO DB1.TABLE2 (Col1, Col2) VALUES (Db1.TABLE1.Col1, 0);
ELSEIF DELETING
THEN DELETE FROM Db1.TABLE2 WHERE Col1=TABLE1.Col1;
END IF;
END
但这不起作用(它无法识别插入/删除语句中的TABLE1.Col1)。
它还会提示我一个错误(我猜),因为当在表 1 中插入第二行时它会创建一个重复的键。当Table2.Col1 已经存在时,如何避免错误(只是跳过插入)?
【问题讨论】:
-
我看到了一些在同一个触发器上同时使用插入和删除的示例,但这是我的问题的次要问题。我想要一个检查重复项的工作插入示例。 (顺便说一句,我在发布之前已经查看了该链接)。
标签: triggers insert db2 db2-400