2012-12-13 168 views
0

我正在嘗試創建一個Oracle觸發器,用於在每個插入或更新的某個表的記錄上更新entry_stamp列(類型= DATE)。這裏是我的腳本:創建觸發器以更新插入或更新記錄上的時間戳?

CREATE OR REPLACE TRIGGER mytable_entry_stamp 
AFTER INSERT OR UPDATE ON mytable FOR EACH ROW 
BEGIN :NEW.entry_stamp := SYSDATE; END; 

我收到此錯誤:

ORA-04084: cannot change NEW values for this trigger type

回答

1

Oracle/PLSQL: AFTER UPDATE Trigger

  • 您不能更新:新的價值觀。
  • 您無法更新:OLD值。

看起來,Oracle不能更新AFTER內部的記錄,與MSSQL不同。因此它被保留用於記錄/審計目的,即可以在另一個表中插入或更新記錄。在我將這個觸發器轉換爲BEFORE後,它完美無缺地工作。