create or replace trigger ATOB after insert or update on A for each row
begin
if inserting then
    insert into b values(:new.col1,:new.col2,...,:new.coln);
else
    update b set (col1,col2,...,coln)=(select :new.ccol1,:new.col2,...,:new.coln from dual)
    where 关联字段=:old.关联字段;
end if;
end;

解决方案 »

  1.   

    我的表里面的字段较多,只能一一列出吗?
    没有这样的用法吗?:new.*
      

  2.   

    select * from tableA where 0=1
    请问楼上大哥知道其中含义吗
      

  3.   

    这种操作可以用在创建一个同结构的空表上,如
    create table tableb as select * from tableA where 0=1;
      

  4.   

    学习一下.
    为什么要
    update b set (col1,col2,...,coln)=
    (select :new.ccol1,:new.col2,...,:new.coln from dual)
    不能直接
    update b set (col1,col2,...,coln)=
    (:new.ccol1,:new.col2,...,:new.coln)
      

  5.   

    to sevencdsn(seven) 
    还有什么写法啊?