在oracle 把一个 A 表的数据备份到 B 表,如果 A 表和 B 表里面有相同的数据则不备份.

[复制链接]
查看11 | 回复3 | 2013-5-16 00:24:16 | 显示全部楼层 |阅读模式
看了上面的回答,基本语句是可以的,但是违反了唯一性约束条件,除了A.URI != B.URI,两张表里的主键是不是有冲突的,如果是的话insert 和 select的时候就把除了有冲突的字段都写上,要一一对应的啊。还有一种做法:既然是给a表做备份,就直接创建一张新表得了,create table a_bak as select a.* from a,b where a.uri != b.uri; 如果想保留a的所有数据的话就把 a.uri != b.uri的条件去掉...
回复

使用道具 举报

千问 | 2013-5-16 00:24:16 | 显示全部楼层
insert into Bselect a.*from A, Bwhere A.URI != B.URI;commit;...
回复

使用道具 举报

千问 | 2013-5-16 00:24:16 | 显示全部楼层
insert into tableB select a.* from tableA a where exists(select 1 from tableB b where a.urib.uri)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行