现在有两个系统,a系统和b系统,这两个系统的所有表建立在一个数据库为test名称的数据库中,要用到触发器,如果在a  系统中staff表添加一条数据,则在b系统中user表相应的也就会添加一条新的数据,如果修改a系统中的一条数据,则b系统
 
  中的这条数据也会修改,staff表和user表中有相连的键(training_id),并且training_id字段为staff的主键
    请各位帮忙,谢谢!

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER tri_a
      after insert or update on a
       for each row
    begin
       if inserting then
    insert into b (字段1,字段2) values (:new.字段1,:new.字段2)
        else if updating then
    update b set 字段1=:new.字段1,
              set 字段2=:new.字段2
    when  字段1 =:old.字段1
       and  字段2 =:old.字段2end if;
    end
      

  2.   

    1.建好dblink
    2.给好相应权限
      

  3.   

    o  看错啦  不用dblink  我以为是2个数据库了
    这2个系统的表是不是在同一个用户下
      

  4.   


    ---------小号提问,大号回答,牛XXXX
      

  5.   

    那1楼的方法应该可以啊
    看看你建的触发器是否有效啊select status from user_objects where object_type='TRIGGER' and object_name=''
      

  6.   


     我没用过触发器,我不知道,但是我照着你的方法查询了一下,它返回的是“VALID”,不知是否有效  还有我写的触发器它同步的数据前两天偶尔可以,这两天彻底不行了,不知道是什么原因啊,请帮助,谢谢了
      

  7.   

    同一个用户下  这个同步应该蛮简单的啊  
    staff表和user表中有相连的键(training_id)---  这个地方时外键关联么
    去掉试试
    还有看看你的表上 有没有什么constraint  会不会是constraint  导致无法插入的
      

  8.   

     沒有建立什麽constraint,staff和user表都有training_id,但是沒有給它們建立外鍵啊
      

  9.   

    你要是方便的话   把你2个表的建表sql  和你的trigger的创建sql都贴出来