Oracle数据库Constraint约束的常用操作及异常处理

来源:未知 责任编辑:智问网络 发表时间:2013-10-22 19:28 点击:

本次我们就介绍一下Oracle数据库Constraint约束的常用操作及异常处理,接下来就让我们来一起了解一下这部分内容。
  1.报告约束异常
  如果校验约束时存在异常,则返回一个错误,且完整性约束仍保持未被校验状态。当约束存在异常时,一个语句就不能正确执行,则此语句被回滚。如果存在异常,必须要更新或删除了约束的所有异常后,才可以校验约束。但是在使用ALTER TABLE语句不能确定哪一行违反约束,为了确定哪一行,在发布ENABLE子句中带有EXCEPTION选项的ALTER TABLE语句。
  EXCEPTION选项将ROWID、OWNER、TABLE、ROWID、CONSTRAINT放到一个指定的表中。在启用约束前,硬创建一个合适的异常报告表,用来接收ENABLE子句的EXCEPTION选项信息,可以直接执行'?\rdbms\admin\utlexcpt.sql'或'?\rdbms\admin\utlexcpt1.sql'脚本来进行创建。注意:这两个脚本的区别在于数据库的兼容性级别和所分析的表的类型。
  使用的语法如下:
  ALTER TABLE dept ENABLE PRIMARY KEY EXCEPTIONS INTO EXCEPTIONS;
  或者
  alter table team disable validate constraint id_num EXCEPTIONS INTO EXCEPTIONS;--这个方法不创建索引
  如果存在异常,则直接查询 SELECT * FROM EXCEPTIONS; 即可。如果需要更加详细的信息,则可以使用ROWID与原表的ROWID进行关联,这样就可以查出原始表中当前行的所有信息,并进行修改。
  如何利用EXCEPTIONS来处理实践中的一些问题:
  (1)在已有的constraint上加载数据
  先disable,再加载数据,然后enable and EXCEPTIONS INTO EXCEPTIONS,根据EXCEPTIONS表的纪录delete,最后再enable。
  (2)新建constraint,原有的数据违反了这个约束
  先create disable,再enable and EXCEPTIONS INTO EXCEPTIONS
  以下是一个新建外键的例子:

 2.关于contraint的一些常见操作
  定义约束:


  注:在使用外键参考了PRIMARY或UNIQUE键时,不能停用或删除被参考约束

延迟校验的启用停用:

  停用:

  启用非校验:

  启用校验:

  若要停用/删除相关的FOREIGN KEY约束,则:
  ALTER TABLE dept DISABLE PRIMARY KEY CASCADE;
  删除:


  关于Oracle数据库Constraint约束的一些基本操作就介绍到这里了,希望本次的介绍能够对您有所收获!

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Table函数使用简介
    • Oracle数据库Constraint约束的常用操作及异常处理
    • Bulk Collect性能分析(zz)
    • export/import的使用
    • OCP043第十五讲 Database Security
    • ORACLE10gr2数据导入MySQL方案
    • oracle 让sys用户可以使用isqlplus
    • 在oracle数据库下使用iSQL*Plus DBA访问数据库
    • Oracle行列转换小结
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1