怎样实现同一个oracle数据库的两个表的数据共享?即相互更新?
怎样实现同一个oracle数据库的两个表的数据共享?即相互更新?
例如有A,B两个表,字段有一部分相同。
当我添加,修改和删除A表的信息的时候,B表的(与A表)相同字段信息也跟着添加,修改和删除。
当我添加,修改和删除B表的信息的时候,A表(与B表)的相同字段信息也跟着添加,修改和删除。
用触发器不能实现是吧?

解决方案 »

  1.   

    这个问题我也想弄个明白,但是没有高手出来讲讲,尤其是在产品上用的!这有个实现方式(本人未曾测试, 不知道效率如何!):
    http://space.itpub.net/7656893/viewspace-441035
      

  2.   

    建一个中间表,使用两个trigger实现应该可以.
      

  3.   

    问一下 a包含b 或者 b包含a吗?
    要是这样的话问题就很简单了。
      

  4.   


    a不包含b,b也不包含a啊,他们只有公共部分
      

  5.   

    把A和B分成a,b,c三个表,c为A,B的公共部分,
    然后建试图A,B,对视图进行操作。
      

  6.   

    请问怎样建a,b,c三个表的视图啊?谢谢
      

  7.   


    楼主不去看看?dblink + mv + 触发器
      

  8.   

    create view a as select * from a,c;
    create vire b as select * from b,c;
    上面只是个示列,里面的名字自己修改一下,
    这样程序对视图操作,修改会反映在基表上面。你可以试试
      

  9.   

    看明白了,
    谢谢!你的思路很好,但是我不能用, 
    因为我想建个视图A,B并且视图与表A,B的名字相同,即为C表建名字为A,B的视图,目的是不用改程序(A的程序连接A视图,B的程序连接B视图)就能改变C表!
      

  10.   

    可以用啊。比如x(id int),y(name varchar2),z(addr varchar2)
    可以用表x和z建视图A(id,addr)
    可以用表y和z建视图B(name,addr)
    这样程序不需要修改直接操作视图AB就可以修改表X,Y,Z了
      

  11.   

    按你的思路建视图时出现下列错误:ORA-00955名称已有现在对象使用