一、禁用约束

  alter table table_name disable novalidate constraint constraint_name

二、批量导入数据

三、在开启约束之前一定要检查违反约束的记录

  1、执行Oracle中自带的脚本utlexpt1.sql创建exceptions表。该脚本在oracle_home/rdbms/admin目录下

    sql>@oracle_home\rdbms\admin\utlexpt1.sql

  2、执行带有exception是选项的alter语句,将违反约束条件的记录添加到exceptions表中保存

    alter table table_name enable validate constraint constraint_name exceptions into sys.exceptions;

  3、在exceptions表中使用子查询来锁定无效的数据行

    select column1,column2,column3 from table_name where rowid in(

        select row_id from sys.exceptions

    ) for update

  4、根据查询结果修改违反约束的记录行(可以通过rowid来直接update)

  5、重新执行带有alter 的开启约束的语句

    alter table table_name enable validate constraint constraint_name

  6、查询约束的状态是否为enable 、validate

    select constraint_name,constraint_type,status,validated from dba_constraints where owner='OWNER' and table_name='TABLE_NAME';

四、确认exceptions表无用后删除或者truncate表   

  drop table sys.exceptions;

如何将回收站recyclebin中的对像还原?

SQL> flashback table cube_scope to before drop

表名可以是回收站系统的dba_recyclebin.object_name也可以是dba_recyclebin.original_name

但是此时问题来了,我已经用备份的DDL语句重建了一个新的表,这个时候再用此命令还原显然会报错,这个时候怎么办呢,只能还原成一个别名,具体操作命令是

SQL> flashback table cube_scope before drop rename to cube_scope_old

既然恢复了删除前的表中数据,现在只能从cube_scope_old中的数据插入cube_scope中

SQL> insert into cube_scope select * from cube_scope_old t

 

Oracle启动和禁用约束及删除违反约束的记录的更多相关文章

  1. Oracle 唯一 索引 约束 创建 删除

    http://www.blogjava.net/lukangping/articles/340683.html/*给创建bitmap index分配的内存空间参数,以加速建索引*/ show para ...

  2. Oracle启动和归档模式

    数据库运行 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例–>加载数据库–>打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操 ...

  3. [批处理]Oracle启动助手

    前段日子开始学Oracle数据库,但是由于Oracle数据库的服务启动时间很长 所以机房的里面所有电脑的Oracle服务全部是被禁用的 所以每次上机使用的时候都要先进服务管理,然后把禁用更改为手动模式 ...

  4. Oracle主键约束、唯一键约束、唯一索引的区别

    一般,我们看到术语“索引”和“键”交换使用,但实际上这两个是不同的.索引是存储在数据库中的一个物理结构,键纯粹是一个逻辑概念.键代表创建来实施业务规则的完整性约束.索引和键的混淆通常是由于数据库使用索 ...

  5. Oracle 启动实例(instance)、打开数据库

    Oracle启动实例(instance).打开数据库   by:授客 QQ:1033553122 启动实例(instance).打开数据库 1.开启sqlplus [laiyu@localhost ~ ...

  6. 约束Constraints--主键约束、外键约束、唯一约束、检查约束、默认约束、NOT NULL约束、列约束与表约束、创建约束、删除约束

    约束   Including Constraints 以下内容转自:https://www.cnblogs.com/wcl2017/p/7043939.html和http://blog.csdn.ne ...

  7. Homework 1_SQL Server中由于外键约束而删除数据失败

    SQL Server中由于外键约束而删除数据失败 原因分析:外键约束问题.在配置文件中配置了一对一的关系,外键也是唯一的.数据库中数据有严格的依赖关系. 而在业务逻辑中,在往数据库里删除数据之前,却忘 ...

  8. Oracle查询优化-插入、更新与删除

    --插入.更新与删除 --1.插入新纪录 --1.1.建立测试表 DROP TABLE TEST; CREATE TABLE TEST( C1 ) DEFAULT '默认1', C2 ) DEFAUL ...

  9. SQLServer禁用、启用外键约束

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ---启用or禁用指定表所有外键约束  alter table PUB_STRU  NOCHECK constrai ...

随机推荐

  1. 19-11-1-N

    就剩一个键了…… 以后怎么办呢? 也许可以试试字符映射表……(滑稽 ZJ一下: 我还以为我要死了…… 40 Miemeng 10 03:21:50 80 03:21:51 10 03:21:51 10 ...

  2. 用Axure RP7创建响应式原型教程

    自从几年前响应式技术开始应用时,创建响应式原型就成为了很多人苦恼的事情.响应式设计用一种非常优雅的方式处理为多种设备类型使用HTML和CSS编码的应用,但是提供给UX专业人士的原型工具却没有具备同样品 ...

  3. rabbit mq 基础流程(转)

    从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件    从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...

  4. @Value取值为NULL的解决方案

    在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来获取: @Value("${tag}") private String ...

  5. Luogu P3558 [POI2013]BAJ-Bytecomputer(线性dp)

    P3558 [POI2013]BAJ-Bytecomputer 题意 给一个只包含\(-1,0,1\)的数列,每次操作可以让a[i]+=a[i-1],求最少操作次数使得序列单调不降.若无解则输出BRA ...

  6. 从github下载项目出现yes/no的选项,无法下载项目

    解决办法: # 本地执行: ssh-keygen # 将id_rsa_pub文件中公钥拷贝到github上的ssh认证 oodful@:~/Volumes/Term2 :::$cat ~/.ssh/i ...

  7. AppServer获取参数的方法

    AppServer中从APP_PARAM表中根据param_code获取param_value: appManageService.getParamValueByCode(param_code) -- ...

  8. 为互联网业务而生:阿里云全球首发云Cassandra服务!

    引言:十年沉淀.全球宽表排名第一.阿里云首发云Cassandra服务 ApsaraDB for Cassandra是基于开源Apache Cassandra,融合阿里云数据库DBaaS能力的分布式No ...

  9. HZOI2019序列

    题目链接:https://www.cnblogs.com/Juve/articles/11186805.html(密码是我的一个oj用户名) 题解: 这题我考试打的暴力,只有5分. 一开始理解错题意了 ...

  10. LL(1),LR(0),SLR(1),LALR(1),LR(1)对比与分析

    前言:考虑到这几种文法如果把具体内容讲下来肯定篇幅太长,而且繁多的符号对初学者肯定是极不友好的,而且我相信看这篇博客的人已经对这几个文法已经有所了解了,本篇博客的内容只是对 这几个文法做一下对比,加深 ...