我在这里遇到问题。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>