我的Derby数据库有一个插入触发器。此触发器的目的是获取插入到table_1中的所有内容,并将该信息复制到table_2中。当我输入静态数字时,我的代码可以工作并向table_2添加一行,但我无法想办法简单地获取刚刚插入table_1的行的值。
create trigger insert_new_row
after insert on table_1
referencing new as insertedrow
for each row
insert (a,b,c)
values(a,b,c);
在values
部分,我需要刚刚插入table_1的值(newsest values)。我还试过 - (insertedrow.a
)(:insertedrow.a
)(new.a
)(从table_1中选择一个)和(从table_1中选择a = insertedrow.a),但这些都不起作用。
示例 - 如果insert语句读取 -
insert into table_1 (a,b,c)
values(1,2,3);
我需要触发器将一行插入到具有相同值(1,2,3)的table_2中。列名相同,因此是
的触发器create trigger insert_new_row
after insert on table_1
referencing new as insertedrow
for each row
insert (a,b,c)
values(1,2,3);
会起作用但不实用,因为我需要这个在场景后面,需要使用原始插入语句更改值。有什么想法吗?
答案 0 :(得分:2)
您缺少插入的into
子句。
以下适用于我:
create trigger insert_new_row
after insert on table_1
referencing new as insertedrow
for each row
insert into table_2 (a,b,c)
values( insertedrow.a, insertedrow.b, insertedrow.c);