enable validate deferrable
来源:互联网 发布:自称有哪些网络热语 编辑:程序博客网 时间:2024/06/08 07:42
enable/disable validate/novalidate
以上两项都是对约束的设置选项
enable/disable
针对新插入/更新的数据进行/不进行约束验证,默认enable。
enable时,如果是主键或唯一键,首先查看列上是否有索引,如果有就用。没有就新建。
disable时,如果是主键或唯一键,会删除enable时新建的索引,但自定义索引不受影响。
validate/novalidate
针对已有数据进行/不进行约束验证,默认validate
①enable validate
对新数据做验证,同时保证旧数据验证通过。如果旧数据违反约束,则必须修改或删除这部分数据,否则不能创建约束。
②enable novalidate
对新数据做验证,同时忽略旧数据的约束合法性。如果旧数据违反主键/唯一键约束,并且事先没有定义该列的非唯一索引(nonunique index),则本设置不能通过。因为在enable时,系统会新建一个unique index,而旧数据显然不能支持这一操作。所以要使本设置生效,必须对违反主键/唯一键约束的列上添加nonunique index。方法是create index <index_name> on <table>(<column>)。
③disable validate
保证已有数据的约束合法性,同时禁止表的insert/update/delete操作。
④disable novalidate
忽略约束合法性
以上约束设置状态的修改方法
(1) 新建约束时的设置
alter table add constraint EMP_PK primary key(employee_id) enable/disable validate/novalidate
(2) 约束存在情况下的修改
alter table enable/disable validate/novalidate constraint <constraint_name>
deferrable/no deferrable
约束校验是/否可延时。
deferred/immediate
在deferrable情况下,可设置是否延时校验。deferred表示在事务提交时进行约束校验,如果有一条语句验证失败,则整个事务回滚。immediate表示在每条SQL语句后进行。
在no deferrable情况下
修改约束校验延时设置,使用
(1) 在约束存在情况下设置
alter table TESTTAB drop constraint TEST_PK cascade;
alter table TESTTAB add constraint TEST_PK primary key (EMPLOYEE_ID) deferrable;
在约束为deferrable的情况下,使用以下语句修改状态
set constraint <constraint_name> deferred/immediate;
(2) 初始化设置
alter table TESTTAB add constraint deferrable initially immediate/deferred;
- enable validate deferrable
- Enable/Disable/Validate/Novalidate
- enable validate/novalidate 以及 disable validate/novalidate
- disable/enable validate/novalidate的区别
- disable/enable validate/novalidate 的区别
- disable/enable validate/novalidate 的区别 (ORACLE)
- disable/enable validate/novalidate 的区别
- Oracle约束enable validate时…
- 约束disable/enable validate/novalidate 的区别
- disable/enable validate/novalidate 的区别
- 利用Oracle的enable validate约束进行数据检查
- Oracle约束的关键字Enable/Disable/Validate/Novalidate
- Oracle约束的关键字Enable/Disable/Validate/Novalidate
- 误删唯一索引的补救enable validate|novalidate
- Oracle约束的关键字Enable/Disable/Validate/Novalidate
- Oracle约束的关键字Enable/Disable/Validate/Novalidate
- Oracle deferrable、immediate 约束
- linux interrupt, deferrable function
- C++指针存储结构
- 替换字符串中间的某些字符
- 较全面的主流浏览器CSS BUG兼容汇总
- C++函数参数和返回值三种传递方式
- android 共享全局数据
- enable validate deferrable
- 2011研发管理上的几点思考
- VS2010在项目引用或依赖特性上与VS2008的不同
- CSS opacity - 实现图片半透明效果
- 内核延迟函数分析
- 如何正确的双击运行jar文件
- 屏蔽优酷、土豆等视频网站15秒广告的最全最简单方法
- 贝壳一键还原2.0(BeiKel One Key Recover 2.0)多语言版下载(简体中文,繁体中文,英文)
- 高性能MMORPG服务端引擎设计之基本概念