博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 约束constraint
阅读量:5057 次
发布时间:2019-06-12

本文共 1052 字,大约阅读时间需要 3 分钟。

写这篇的目的是为了自己以后更好的复习,很多都是参照网上的。

oracle约束可以检查出不符合业务的需求

Oracle约束按约束状态又可分为disable novalidate,disable validate,enable novalidate,enable validate. 其中disable/enable代表是否启用约束,validate/novalidate代表启用约束时是否对表中原有数据作检查。

1.创建表

create table t1(                 id number,                 name varchar2(20)); insert into t1 values(1,'A'); insert into t1 values(1,'B'); commit

2.添加约束条件(约束条件很多,check,NOT NULL 等) 准备在下篇中详细介绍

alter table t1 add constraint pk_t1 primary key (id)  deferrable enable novalidate;

   此时主键已经生效,但源表中包含不符合约束的数据

3.如果将约束状态更改为 enable validate,却发现原有数据有问题

   alter table t1 enable validate constraint pk_t1;(会报错

4.建立一个异常表(这两种都可以的)

 

SQL>@D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlexpt1.sql
create table exceptions(row_id rowid, owner varchar2(30), table_name varchar2(30), constraint varchar2(30));

5.然后将异常数据插入异常表

alter table t1 enable validate constraint pk_t1 exceptions into exceptions;

6.根据对应表找出对应的异常数据进行修改

select id,name from t1 where rowid in( select row_id from exceptions) FOR UPDATE;

 

转载于:https://www.cnblogs.com/wujin/archive/2012/02/12/2348377.html

你可能感兴趣的文章
android访问链接时候报java.net.MalformedURLException: Protocol not found
查看>>
dwz ie10一直提示数据加载中
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
关于WPF的2000件事 02--WPF界面是如何渲染的?
查看>>
单元测试、、、
查看>>
深入理解include预编译原理
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>