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)(select a from table_1)and(select a from table_1 where a = insertrow.a)しかし、これらはどれも機能しません。

例-挿入ステートメントが次のようになっている場合-

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

動作しますが、これが舞台裏で必要であり、元の挿入ステートメントで値を変更する必要があるため、実用的ではありません。何か案は?

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 に答える