我在這裏遇到問題。SQL想在更新表之前和之後記錄值
DB:ORACLE 9i中
我想後,我在我的桌子, 執行UPDATE
腳本日誌我想舊值與新值進行比較,以保存數據的變化。
我該怎麼做。
感謝幫助我:)
我在這裏遇到問題。SQL想在更新表之前和之後記錄值
DB:ORACLE 9i中
我想後,我在我的桌子, 執行UPDATE
腳本日誌我想舊值與新值進行比較,以保存數據的變化。
我該怎麼做。
感謝幫助我:)
寫簡單的觸發,通過使用:OLD和:NEW就可以得到表中的新的和舊值的值
create or replace
trigger tg_name
after UPDATE ON table_name
for each row
BEGIN
IF :NEW.column1 = :OLD.column1 THEN
-- any statement
END IF;
-- you can log the old and new value by inserting into log table's too..
END;
你可以做在更新後觸發,您可以爲每個所需字段使用:舊值和新值。
如果您只需要更新的值,則可以使用RETURNING子句。
像
UPDATE <table> SET (c1) = (v1), (c2) = (v2), (cn) = (vn) WHERE <condition> RETURNING <expression> INTO <variables>