0
在Oracle中獲取更新行的身份的最佳方式是什麼?我正在嘗試編寫一個觸發器,它能夠更新表Customer中每個更新行中的時間戳字段。在Oracle中獲取更新行的身份的最佳方法是什麼?
我的表:
CREATE TABLE CUSTOMER
(
ID NUMBER NOT NULL
, LASTNAME NVARCHAR2(20)
, FIRSTNAME NVARCHAR2(20)
, UPDATETS TIMESTAMP(30) NOT NULL
, UPDATEUSER VARCHAR2(30 BYTE) NOT NULL
, CONSTRAINT CUSTOMER_PK PRIMARY KEY
(
ID
)
);
我觸發:
CREATE OR REPLACE TRIGGER UPDATETS_REG_TRG
AFTER UPDATE ON CUSTOMER
REFERENCING OLD AS oldAlias
FOR EACH ROW
BEGIN
if updating then
update CUSTOMER
set UPDATETS = SYSTIMESTAMP, UPDATEUSER = User where CUSTOMER.ID = oldAlias.ROWID ;
end if;
END;
我收到此錯誤:Fehler(8,78):
PL/SQL: ORA-00904: "OLDALIAS"."ROWID": invalid identifier
可有人請上幫助我這個問題?謝謝:)
僅僅是更新的行影響? – sead4711
@ sead4711 - 是的。對於更新的每一行,觸發器都會被調用一次(至少)。你對':new'的僞碼進行的修改只適用於這一行。 –
謝謝賈斯汀:)那是完美的回答:) – sead4711