表T和T2都有TID字段,T的TID是T2的外键,希望在任一个T表的TID值更新时对T2的相同字段做同样的更新。
触发器的触发事件是在T更新之后,主体如下,begin    update T2
    set T2.TID = T.TID
    where T2.TID = :old.T.TID;
      
end;
编译后报错: 错误的赋值变量old.T请问应该怎么写?

解决方案 »

  1.   

    create or replace trigger trig_t
    after update of TID on T
    for each row
    begin 
        update T2 
        set T2.TID = :new.TID 
        where T2.TID = :old.TID;        
    end; 
      

  2.   

    :new中存储的是T表更新内容中已经更新完成的字段;
    :old中存储的是更新前的tid内容;
    楼主的:old.t.tid没有所属关系,语法上就不通
      

  3.   

    谢谢,问题已解决,正如楼上DX所说的,new和old代表的是触发触发器的事件发生的表(T)的新旧列值,所以不用再特地指明表名。