2013-03-04 49 views
1

我有一個針對我的Derby數據庫的插入觸發器。此觸發器的要點是將所有插入到table_1中的內容都複製到table_2中。當我輸入靜態數字時,我的代碼工作並向table_2添加了一行,但我無法想象僅僅獲取剛剛插入到table_1中的行的值。Apache Derby插入觸發器 - 檢索插入的記錄

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值)中的值。我也試過了 - (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); 

我需要將觸發行插入TABLE_2擁有相同的值(1,2,3)。該collumn名稱是相同的,所以的

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

觸發工作,但不是實際的,因爲我需要這個場景背後hapen和需要的值與原始插入語句改變。有任何想法嗎?

回答

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