请教一个oracle数据合并过滤主键的问题

zgh_mnb 2012-03-16 03:06:16
是这样的,我想使用dba权限的用户对不同表空间下的两张表,表A。表B(表结构完全一样),想把B里的数据不定期往A里合并,A表的数据仍然保留,B表的数据会不断增多,脚本示例如下:

insert into user1.A
select * from user2.B


但是这有一个缺点,就是主键重复的时候,脚本停止执行,其余数据无法插入。请教怎么过滤主键插入不重复的记录。
...全文
59 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgh_mnb 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ht307 的回复:]
SQL code

insert into user1.A as select * from user2.B where user2.B.userId not in (select userId from user1.A) ;
这样行不行?
[/Quote]
问题已经解决了 思路是差不多 使用了minus取减集。
槑党 2012-03-16
  • 打赏
  • 举报
回复
insert into user1.A as select * from user2.B where user2.B.userId  not in (select userId from user1.A) ;
这样行不行?
zgh_mnb 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 quhuafeng521 的回复:]
如果两个表的数据是一样的。那每次插入的时候查询出A表。ID的最大值。取出B表中ID大于A表ID最大值的记录插入
[/Quote]
不行的 我的ID 是自定义的RAW类型 不是常规的ID,不可比较大小。但是你的思路挺有启发的。还是谢谢了。
quhuafeng521 2012-03-16
  • 打赏
  • 举报
回复
如果两个表的数据是一样的。那每次插入的时候查询出A表。ID的最大值。取出B表中ID大于A表ID最大值的记录插入

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧