1

我的 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 的值(最新值)。我也试过(insertedrow.a- ) ( :insertedrow.a) ( new.a) (从 table_1 中选择一个)和(从 table_1 中选择一个,其中 a = 插入行.a)但这些都不起作用。

示例-如果插入语句读取-

insert into table_1 (a,b,c)
values(1,2,3);

我需要触发器在 table_2 中插入具有相同值 (1,2,3) 的行。列名称相同,因此触发

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

会起作用,但不实用,因为我需要在幕后发生这种情况,并且需要使用原始插入语句更改值。有任何想法吗?

4

1 回答 1

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);
于 2013-03-04T22:40:27.080 回答