我有以下触发器,只要有THAT_TABLE
的插入或更新,就会在THIS_TABLE
上触发插入。
以下查询的工作方式与其应有的方式相同。同样 - 当我评论 line-A 并取消注释(并删除or
in) line-B 时,它会起作用。
create or replace trigger t99
after
update -- line-A
--or insert -- line-B
on THIS_TABLE
REFERENCING new as newRow
for each row MODE DB2SQL
insert into THAT_TABLE
values (newRow.tnumber, 'O', newRow.cocode, CURRENT TIMESTAMP, null, null)
但是,当我取消注释两行时,我收到以下错误:
意外的令牌" OR INSERT"发现在""之后。预期的令牌可能包括:"" .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 4.21.29
缺少什么?
我在Windows 10上运行DB2 9.1
答案 0 :(得分:1)
尝试将语句包含在BIGIN END块中,如我的示例所示:
create table test.triggerevent (id int, text varchar(50))@
create table test.log (id int, text varchar(50), ts timestamp)@
create or replace trigger tlog
after update or insert
on test.triggerevent
referencing new as newRow
for each row mode db2sql
begin
insert into test.log values (newRow.ID, newRow.text, current timestamp);
end
@