Welcome 微信登录

首页 / 数据库 / MySQL / Oracle中用Rowid查找和删除重复记录

平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。

下面总结一下几种查找和删除重复记录的方法(以表CZ为例):

表CZ的结构如下:
SQL> desc cz
Name Null? Type
-----------------------------------------

C1 NUMBER(10)
C10 NUMBER(5)
C20 VARCHAR2(3)

删除重复记录的方法原理:

(1).在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。

(2).在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中那些具有最大rowid的就可以了,其余全部删除。
  • 1
  • 2
  • 3
  • 4
  • 下一页
【内容导航】
第1页:Oracle中用Rowid查找和删除重复记录第2页:Oracle中用Rowid查找和删除重复记录
第3页:Oracle中用Rowid查找和删除重复记录第4页:Oracle中用Rowid查找和删除重复记录
Oracle中临时文件File#和Db_files关系PostgreSQL还需进一步努力相关资讯      本文评论 查看全部评论 (0)
表情: 姓名: 字数

<