`
annan211
  • 浏览: 459373 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle 删除有大量重复数据且数据量很大的表且该表存在主键被引用的情况下清除重复数据

阅读更多
1 先将需要保留的数据保存下来放入临时表 USERCOMPANYINFO_tmp

  
create table USERCOMPANYINFO_tmp as (
 select * from USERCOMPANYINFO where rowid not in (SELECT A.ROWID FROM USERCOMPANYINFO A,(SELECT MAX(A.ROWID) RROWID,COMPANY FROM USERCOMPANYINFO A GROUP BY A.COMPANY HAVING COUNT(*) > 3) B 
     WHERE A.COMPANY = B.COMPANY AND A.ROWID <> B.RROWID))


2 当表中的主键被其他表参照时,需要执行下面语句 不然会报错:
 
 ORA-02266: unique/primary keys in table referenced by enabled foreign keys
   ORA-02266: 表中的唯一/主键被启用的外部关键字引用


alter table USERCOMPANYINFO disable primary key cascade; //清除外部引用

 3 
 truncate table USERCOMPANYINFO;//清空数据
 
 4 
 insert into USERCOMPANYINFO select * from USERCOMPANYINFO_tmp; //蒋临时表中的数据倒入目标数据表
 5
 alter table USERCOMPANYINFO enable primary key; //给目标数据表添加主键约束
分享到:
评论

相关推荐

    oracle 数据按主键删除慢问题的解决方法

    根据表主键id删除一条数据,在PL/SQL上执行commit后执行时间都大于5秒。!!! 问题分析: 需求是删除一个主表A,另有两个附表建有此表的主键ID的外键。删除A表的数据级联删除另两个表的关联数据。增删改查使用...

    Oracle表类型表变量使用

    在Oracle数据库系统中,表类型和表变量是高级PL/SQL编程的重要组成部分,它们提供了在存储过程、函数和触发器中处理数据集的有效方式。本文将深入探讨Oracle表类型表变量的使用,以及如何通过提供的SQL脚本进行实践...

    Oracle 40 道面试题及答案.docx

    10. 在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log,以提高速度;如果数据量不大,为了缓和系统表的资源,应先 create table,然后 insert。 11. 如果...

    Oracle数据库基础教程-参考答案

    【Oracle数据库基础】 ...综上所述,Oracle数据库提供了强大且灵活的数据管理解决方案,其丰富的功能和特性使其成为企业级应用的首选。理解和掌握这些基础知识对于使用和管理Oracle数据库至关重要。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时是很好的,效率也很高 小型企业 三、 Oracle数据库概述 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以...

    Oracle学习第四章

    数据库对象是Oracle数据库中存储和管理数据的各种结构,包括表、视图、索引、存储过程、函数、触发器、序列、同义词等。下面我们将深入探讨这些对象及其重要性。 首先,**表**是Oracle中最基本的数据库对象,它用于...

    Oracle 常用脚本.zip

    6. 表空间管理脚本:表空间是Oracle数据库中存储数据的基本单位,管理脚本可能涉及创建、扩展或收缩表空间,调整数据文件大小,以及设置表空间的自动管理策略。 7. 用户管理与权限脚本:这些脚本用于创建、删除和...

    oracle第二讲(创建及管理表)PPT课件.ppt

    总之,Oracle数据库提供了丰富的数据类型来满足各种数据存储需求,同时也提供了灵活的表创建和管理机制,使得数据库设计和数据管理变得高效且规范。通过深入理解这些概念,开发者和DBA可以更好地构建和优化他们的...

    Oracle数据库系统使用经验六则.doc

    3. **删除表内重复记录的方法**:删除重复记录通常需要通过比较主键或唯一键的值来实现。示例中的SQL语句通过比较多列的值来找到并删除重复记录。然而,对于大型表,这种方法可能效率低下,可能需要采用其他策略,如...

    指导学习oracle

    **方法1** 在查询前几页时速度较快,但在数据量很大时查询最后几页的速度较慢。**方法2** 查询效率更为稳定。**方法3** 只适用于查询结果在200行以内的场景,数据量大时可能会导致Oracle错误。 综上所述,在Oracle...

    oracle 学生成绩管理系统

    在成绩管理系统中,用户可以通过SQL语句进行增删改查操作,例如,插入新的成绩记录、更新某个学生的信息、删除无用的数据或查询特定条件下的成绩。 4. 视图与存储过程:视图是从一个或多个表中创建的虚拟表,简化了...

    面试复习题--oracle.pdf

    3. **表空间管理**:表空间是Oracle数据库的逻辑存储结构,数据文件、表等都位于特定的表空间中。创建、修改和删除表空间的SQL语句涉及到表空间的大小、位置和状态调整。例如,`CREATE TABLESPACE`、`ALTER DATABASE...

    课堂练习:Oracle大型实验-毕业设计选题系统数据库+项目文档

    在实现过程中,Oracle的SQL语言是关键,包括DDL(Data Definition Language)用于创建和修改表结构,DML(Data Manipulation Language)用于插入、更新和删除数据,以及T-SQL扩展用于复杂的业务逻辑。此外,可能还...

    oracle数据库概述.ppt

    同时,Oracle数据库支持并行处理和分布式数据库系统,能够处理大规模的数据量和高并发访问场景。Oracle数据库还提供了数据仓库和商业智能解决方案,如Oracle Data Warehouse和Oracle Business Intelligence,帮助...

    MLDN魔乐科技_Oracle课堂12_数据库更新操作

    使用TRUNCATE TABLE可以快速清空表,但请注意,这将永久删除数据且不可回滚。 在Oracle中,事务(Transaction)管理是确保数据一致性的重要机制。更新操作通常包含在一个事务中,可以使用BEGIN、COMMIT和ROLLBACK...

    oracle自学笔记

    在数据库选择上,通常会考虑以下因素:数据量的大小、成本(包括服务费用)、数据安全性级别。例如,小型项目可能选择MySQL,中型项目可能使用SQL Server,而大型复杂应用则倾向于Oracle。Oracle数据库因其强大的...

    oracle数据库-图书管理系统

    ### Oracle数据库-图书管理系统知识点解析 #### 一、系统架构与设计 在“Oracle数据库-图书管理系统”项目中,我们看到一个完整的图书...这对于学习Oracle数据库以及进行图书管理系统的设计与开发都有很大的帮助。

    Oracle 索引 详解

    * 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构。 * 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。 * 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的...

Global site tag (gtag.js) - Google Analytics