Oracle数据库删除表中重复记录的常见方法

方法一:

delete from tb_channel a where a.rowid in

(select max(b.rowid) from tb_channle b

where a.policyno=b.policyno and a.classcode=b.classcode);

——这一办法在数据记录超过10万时一般都会变得很慢。

方法二:

--建立临时表,--清空原表,--插回原表,如下例:

create table temp_emp as (select distinct * from employee) ;

truncate table employee;

insert into employee select * from temp_emp;

——这一办法适用于较大的表的情况。因为是块操作,对应于大表效率会好很多

方法三:

--建立新表,--去重复放入,--删除原表,如下例:

select distinct * into new_table from old_table

order by 主 键

drop table old_table

exec sp_rename new_table,old_table;

——这一办法适用于较大的表的情况。因为是块操作,对应于大表效率会好很多

 
如何查找、删除表中重复的记录
如何查找、删除表中重复的记录软件环境: 1、Windows NT4.0+ORACLE 8.0.42、ORACLE安装路径为:C:\ORANT问题提出: 1、当我们想要为一个表创建唯一索引时,如果该表有重复的记录,则无法创建成功。 方法原理: 1、Or...查看完整版>>如何查找、删除表中重复的记录
 
如何确定Oracle数据库表中重复的记录
  作为一个Oracle数据库开发者或者DBA,在实际工作中经常会碰到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。 ...查看完整版>>如何确定Oracle数据库表中重复的记录
 
如何确定Oracle数据库表中重复的记录
     作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。  下面我们以表code_ref为例来...查看完整版>>如何确定Oracle数据库表中重复的记录
 
如何确定Oracle数据库表中重复的记录
  作为一个Oracle数据库开发者或者DBA,在实际工作中经常会遇到这样的问题:试图对库表中的某一列或几列创建唯一索引时,系统提示ORA-01452:不能创建唯一索引,发现重复记录。  下面我们以表code_ref为例来讨论...查看完整版>>如何确定Oracle数据库表中重复的记录
 
在SQL中删除重复记录的多种方法
  本文总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录;还可以建临时表来实现...这里只提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例)。 SQL> desc em...查看完整版>>在SQL中删除重复记录的多种方法