我正在嘗試爲Derby數據庫編寫更新觸發器。觸發器需要每次更改ODS_CNTRL_AUDIT表時更新/新記錄添加到ODS_CNTRL表中。 (這是Oracle)德比SQL更新觸發器
到目前爲止,我有
create trigger Update_Audit
after update
on ODS_CNTRL
for each row MODE DB2SQL
insert into ODS_CNTRL_AUDIT
(
ODS_LOAD_ID, ODS_STATUS, USR_WWID, USR_FIRST_NM,
USR_LAST_NM, USR_DISPLAY_NM, USR_NT_ID,TOT_AMT
)
values
(
ODS_CNTRL.ODS_LOAD_ID, ODS_CNTRL.ODS_STATUS, ODS_CNTRL.USR_WWID, ODS_CNTRL.USR_FIRST_NM,
ODS_CNTRL.USR_LAST_NM, ODS_CNTRL.USR_DISPLAY_NM, ODS_CNTRL.USR_NT_ID, ODS_CNTRL.TOT_AMT,
T
);
但這代碼將無法運行。我收到錯誤 -
"Error code -1, SQL state 42X04: Column 'ODS_CNTRL.ODS_LOAD_ID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'ODS_CNTRL.ODS_LOAD_ID' is not a column in the target table."
是否需要添加For命令?需要進行哪些編輯才能使此觸發器正常工作?所有值都是ODS_CONTROL表中的列。
從我所瞭解的引用是觸發器的一個重要方面。以及我不明白這將如何適用,因爲我需要複製表OCD_CNTRL中的值不使用舊的或新的。 – 2013-02-26 15:23:36