日期:2014-05-17  浏览次数:20624 次

请教一个oracle数据合并过滤主键的问题
是这样的,我想使用dba权限的用户对不同表空间下的两张表,表A。表B(表结构完全一样),想把B里的数据不定期往A里合并,A表的数据仍然保留,B表的数据会不断增多,脚本示例如下:
SQL code

insert into user1.A
select * from user2.B



但是这有一个缺点,就是主键重复的时候,脚本停止执行,其余数据无法插入。请教怎么过滤主键插入不重复的记录。 


------解决方案--------------------
如果两个表的数据是一样的。那每次插入的时候查询出A表。ID的最大值。取出B表中ID大于A表ID最大值的记录插入
------解决方案--------------------
SQL code
insert into user1.A as select * from user2.B where user2.B.userId  not in (select userId from user1.A) ;