oracle 快速移动数据和删除重复数据但保留其中一条数据

     在项目中会遇到将一个表的部分数据移动另一个表中的事情。

insert into table1 (id,其他属性)
select t.a,t.c...from table2 t
注意属性类型大小要一致

这是数据库内部数据转移,我测试过来,40万数据量,只要几秒时间。表示非常快。



     项目中会遇到数据重复,需要删除重复数据只保留一条数据

delete from table1 t 
where t.rowid > (select min(p.rowid) from table1 p where t.a =p.a);


原理利用函数 min()把有重复中除最小外都删除了,没有重复数据的最小值肯定与min()出来的结果相等则不会被删除

a属性就是数据中重复的数据。如果还有其他条件可以按照个人意愿随便加。








你可能感兴趣的:(oracle 快速移动数据和删除重复数据但保留其中一条数据)