Apache Derby插入触发器 - 检索插入的记录

时间:2013-03-04 22:31:11

标签: sql triggers derby sql-insert

我的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);

会起作用但不实用,因为我需要这个在场景后面,需要使用原始插入语句更改值。有什么想法吗?

1 个答案:

答案 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);