有两个数据库,里面的表和结构相同,但是这两个数据库本身不能相互连接
所以我想了一个方法,就是将需要进行同步的表都创建一个触发器,在表数据发生时,向一张动作表(action表)中插入数据,然后再用一个中间程序,去取action表中的数据,根据这个数据去更新另外数据库的数据
但是这样会有一个问题,如果同一张表,两边都要同步,因为触发器的原因,就会产生无限循环
例如在A数据库中对表aa插入一条数据,这时触发器会向action表中添加一条数据,然后中间的程序提取到这条数据后,会向B数据库中的aa插入相同的数据,但同时,它的触发器也会向B数据库中的action表添加一条数据,这样的话就没完没了了……也不知道我说明白了没有,请各位高手多多指点
所以我想了一个方法,就是将需要进行同步的表都创建一个触发器,在表数据发生时,向一张动作表(action表)中插入数据,然后再用一个中间程序,去取action表中的数据,根据这个数据去更新另外数据库的数据
但是这样会有一个问题,如果同一张表,两边都要同步,因为触发器的原因,就会产生无限循环
例如在A数据库中对表aa插入一条数据,这时触发器会向action表中添加一条数据,然后中间的程序提取到这条数据后,会向B数据库中的aa插入相同的数据,但同时,它的触发器也会向B数据库中的action表添加一条数据,这样的话就没完没了了……也不知道我说明白了没有,请各位高手多多指点
解决方案 »
- 请教关于数据库选择
- MonetDB内存数据库什么创建函数和导入导出数据
- RAC安装时碰到"failed to initialieze ocrconfig",后来我修改了问题,并重新运行root.sh成功,还能接着后面的配置助手吗?
- 定义oracle的对象如表或字段时,双引号有什么用?如何在sql中使用?
- 关于oracle 11g r2的em登陆问题
- 程序连接oracle数据库问题
- 请大家介绍oracle9i的网站
- 数据的导入导出问题(在线等)
- 奇怪的问题!!!
- General SQL error ORA-061631:表121.main 达到MAX #extents(dd)
- oracle中 如何查询10天前的数据
- ORACLE 求一条查询语句
另外用dblink连接不可以吗?
添加flg, --> 未添加:1,添加完成:2
触发器加条件:for each row when(new.flg=1)A数据库中对表aa插入一条数据,(設定:A数据库aa表的flg=1)
这时触发器会向action表中添加一条数据,(設定:action表的flg=1)
然后中间的程序提取到这条数据后,(設定:数据的flg=2)
会向B数据库中的aa插入相同的数据,(現在:B数据库aa表的flg=2)
但同时,它的触发器也会向B数据库中的action表添加一条数据,(現在:flg=2,不満足触发器条件)