我从一本书中复制了以下测试触发器:
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值。
答案 0 :(得分:1)
我的猜测是:OLD
值将全为NULL。代码可能只是更新触发器的复制/粘贴