SQL希望在更新表之前和之后记录值



我在这里有问题。

DB:Oracle 9i

我想在表上执行UPDATE脚本后保存数据更改,在该日志中,我想将旧值与新值进行比较。

我该怎么做。

感谢您的帮助:)

编写简单触发器,用:old and: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;

您可以在更新后进行触发器,您可以使用:old and:您想要的每个字段的新值。

以防万一,如果仅需要更新的值,则可以使用返回子句。

喜欢

UPDATE <table> SET (c1) = (v1), (c2) = (v2), (cn) = (vn) WHERE <condition> RETURNING <expression> INTO <variables>

http://psoug.org/definition/returning.htm

最新更新