2011-08-10 73 views
0

我已經得到了以下測試觸發我從一本書上抄:老僞紀錄後插入觸發器

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

我的猜測是:OLD值將全部爲NULL。代碼可能只是來自更新觸發器的複製/粘貼

+0

是的,作者然後自己暗示沒有插入觸發器的舊記錄。 –