




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORACLE 中删除重复记录中删除重复记录 平时工作中可能会遇见当试图对库表中的某一列或几列创建唯一索引时 系统提示 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 的就能了 其余全部删除 重复记录判断的标准是 c1 c10 和 c20 这三列的值都相同才算是重复记录 经查看表 cz 总共有 16 条记录 sql set pagesize 100 sql select from cz c1 c10 c20 1 2 dsf 1 2 dsf 1 2 dsf 1 2 dsf 2 3 che 1 2 dsf 1 2 dsf 1 2 dsf 1 2 dsf 2 3 che 2 3 che 2 3 che 2 3 che 3 4 dff 3 4 dff 3 4 dff 4 5 err 5 3 dar 6 1 wee 7 2 zxc 20 rows selected 1 查找重复记录的几种方法 1 sql select from cz group by c1 c10 c20 having count 1 c1 c10 c20 1 2 dsf 2 3 che 3 4 dff 2 sql select distinct from cz c1 c10 c20 1 2 dsf 2 3 che 3 4 dff 3 sql select from cz a where rowid select max rowid from cz where c1 a c1 and c10 a c10 and c20 a c20 c1 c10 c20 1 2 dsf 2 3 che 3 4 dff 2 删除重复记录的几种方法 1 适用于有大量重复记录的情况 在 c1 c10 和 c20 列上建有索引的时候 用以下语句效率会非 常高 sql delete cz where c1 c10 c20 in select c1 c10 c20 from cz group by c1 c10 c20 having count 1 and rowid not in select min rowid from cz group by c1 c10 c20 having count 1 sql delete cz where rowid not in select min rowid from cz group by c1 c10 c20 2 适用于有少量重复记录的情况 注意 对于有大量重复记录的情况 用以下语句效率会非常 低 sql delete from cz a where a rowid select max rowid from cz b where a c1 b c1 and a c10 b c10 and a c20 b c20 sql delete from cz a where a rowiddelete from cz a where rowid create table test as select distinct from cz 建一个临时表 test 用来存放重复的记录 sql truncate table cz 清空 cz 表的数据 但保留 cz 表的结构 sql insert into cz select from test 再将临时表 test 里的内容反插回来 4 适用于有大量重复记录的情况 exception into 子句法 采用 alter table 命令中的 exception into 子句也能确定出库表中重复的记录 这种方法稍微麻 烦一些 为了使用 excepeion into 子句 必须首先创建 exceptions 表 创建该表的 sql 脚本文件为 utlexcpt sql 对于 win2000 系统和 unix 系统 oracle 存放该文件的位置稍有 不同 在 win2000 系统下 该脚本文件存放在 oracle home ora90 rdbms admin 目录下 而对于 unix 系统 该脚本文件存放在 oracle home rdbms admin 目录下 具体步骤如下 sql rdbms admin utlexcpt sql table created sql desc exceptions name null type row id rowid owner varchar2 30 table name varchar2 30 constraint varchar2 30 sql alter table cz add constraint cz unique unique c1 c10 c20 exceptions into exceptions error at line 1 ora 02299 cannot validate test cz unique duplicate keys found sql create table dups as select from cz where rowid in select row id from exceptions table created sql select from dups c1 c10 c20 1 2 dsf 1 2 dsf 1 2 dsf 1 2 dsf 2 3 che 1 2 dsf 1 2 dsf 1 2 dsf 1 2 dsf 2 3 che 2 3 che 2 3 che 2 3 che 3 4 dff 3 4 dff 3 4 dff 16 rows selected sql select row id from exceptions row id aaahd aaiaaaadsaaa aaahd aaiaaaadsaab aaahd aaiaaaadsaac aaahd aaiaaaadsaaf aaahd aaiaaaadsaah aaahd aaiaaaadsaai aaahd aaiaaaadsaag aaahd aaiaaaadsaad aaahd aaiaaaadsaae aaahd aaiaaaadsaaj aaahd aaiaaaadsaak aaahd aaiaaaadsaal aaahd aaiaaaadsaam aaahd aaiaaaadsaan aaahd aaiaaaadsaao aaahd aaiaaaadsaap 16 rows selected sql delete from cz where rowid in select row id from exceptions 16 rows deleted sql insert into cz select distinct from dups 3 rows created sql select from cz c1 c10 c20 1 2 dsf 2 3 che 3 4 dff 4 5 err 5 3 dar 6 1 wee 7 2 zxc 7 rows selected 从结果里能看到重复记录已删除 3 实例 数据库中有 deny mobile 表 需要按照 mobile 去重复 删除重复记录为 Delete from SMS DENY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险从业模拟考试及答案解析
- 工业题材表演创新创业项目商业计划书
- 呼吸衰竭病人护理题库及答案解析
- c1可以考道路运输从业资格证考试及答案解析
- Lesson 3 Sports Stars教学设计-2025-2026学年高中英语北师大版必修一-北师大版2004
- 九年级音乐第一单元《祖国不会忘记》说课稿
- 2023八年级生物下册 第八单元 健康地生活 第三章 了解自己增进健康第1节评价自己的健康状况说课稿 (新版)新人教版
- 小学信息技术五年级下册第8课《体验控制系统》教学设计
- 2025年电容屏触控芯片行业研究报告及未来行业发展趋势预测
- 家具配件厂工具报废审批管理规定
- 2024年中级注册安全工程师《安全生产专业实务(道路运输安全)》真题及答案
- 凝中国心铸中华魂铸牢中华民族共同体意识-小学民族团结爱国主题班会课件
- 制造业物流智能化仓储管理优化策略
- 人教版(2024新版)七年级上册生物全册教学设计
- 全过程工程咨询管理服务方案投标方案(技术方案)
- 2023年宜宾市叙州区招聘社区专职工作者考试真题
- 2024年新教材统编版一年级上册语文教学计划
- DL∕ T 980-2005 数字多用表检定规程
- 2024-2030年中国汽车香氛系统市场深度调查及前景预测分析研究报告
- 医疗机构消毒记录表清洁消毒日检查记录表
- 儿科专案改善PDCA降低儿科门诊输液重注率品管圈成果汇报
评论
0/150
提交评论