我在这里遇到了问题。
DB:oracle 9i
我想在我的桌子上执行UPDATE
脚本后保存数据更改,
在该日志中,我想将旧值与新值进行比较。
我该怎么做。
感谢您帮助我:)
答案 0 :(得分:2)
编写简单的触发器,使用: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;
答案 1 :(得分:0)
您可以在更新后执行触发,并且可以为所需的每个字段使用:old和:new值。
答案 2 :(得分:0)
如果您只需要更新的值,可以使用RETURNING子句。
像
UPDATE <table> SET (c1) = (v1), (c2) = (v2), (cn) = (vn)
WHERE <condition>
RETURNING <expression> INTO <variables>