After Insert Trigger中的旧伪记录

时间:2011-08-10 05:30:03

标签: oracle triggers

我从一本书中复制了以下测试触发器:

TRIGGER bef_ins_ceo_comp
   BEFORE INSERT
   ON ceo_compensation
   FOR EACH ROW
    DECLARE
   PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
   INSERT INTO ceo_comp_history
        VALUES (:NEW.name,
                :OLD.compensation, :NEW.compensation,
                'AFTER INSERT', SYSDATE);
   COMMIT;
END;

正如您在ceo_comp_history表中插入新记录时所看到的:使用了OLD.compensation值。我想知道那里:OLD伪记录来自哪里?它不是保持两者的更新触发器:NEW和:OLD值。

1 个答案:

答案 0 :(得分:1)

我的猜测是:OLD值将全为NULL。代码可能只是更新触发器的复制/粘贴