创建constraint时的选项:not deferrable和deferrable
来源:互联网 发布:软件开发规划 编辑:程序博客网 时间:2024/05/18 03:37
使用语法:not deferrable | deferrable [ initially { immediate | deferred } ]
not deferrable 是不可延迟,并且约束也无法更改为可延迟状态。约束会在每一句sql statement 之后都进行 check,不符合则 roll back
deferrable 是可延迟状态,在 deferrable 状态时又有2个选项,创建时缺省是initially immediate,即约束会在每一句sql statement 之后都进行 check,效果等同于not deferrable,但是可以修改延迟状态。
initially deferred 约束会在整个事务进行commit 时check,如果不符合则roll back
在deferrable状态下,可以通过set constraints修改 immediate或者deferred
Synopsis
SET CONSTRAINTS { ALL | constraint [,... ] } { DEFERRED | IMMEDIATE }
Parameters
- ALL
The keyword indicating that the mode you are specifying should be applied to all constraints within the current transaction.
- constraint
The name of a specific constraint of which you wish to set the mode.
- DEFERRED
The keyword indicating that constraints (or a specific constraint) shouldn't be checked until the transaction reaches a COMMIT.
- IMMEDIATE
The keyword indicating that constraints (or a specific constraint) should be checked at the end of each statement within a transaction.
Results
- SET CONSTRAINTS
The message returned when a constraint mode is set successfully.
- ERROR: Constraint 'constraint' does not exist
The error returned if you attempt to change the mode of a constraint that does not exist.
Description
Use the SET CONSTRAINTS command to set the constraint mode for all constraints or for a single constraint within the current transaction block. You can choose to set the constraint mode to either IMMEDIATE or DEFERRED. Use of IMMEDIATE mode will force the checking of all constraints at the end of each statement within the transaction. In DEFERRED mode, constraints are not checked until a COMMIT command is issued.
Note: PostgreSQL 7.1.x (the most current version as of the writing of this book) only supports the use of these modes with foreign key constraints, as both check and unique constraints are set to a constraint mode that is not affected by this command.
Example
The following example sets the constraint evaluation mode to IMMEDIATE for all constraints within the transaction:
SET CONSTRAINTS ALL IMMEDIATE;
- 创建constraint时的选项:not deferrable和deferrable
- Oracle中Constraint的状态参数initially与deferrable
- oracle Deferrable constraint 详解以及用法.
- immediate约束和deferrable约束
- 定义可延迟(deferrable)的约束
- enable validate deferrable
- Oracle deferrable、immediate 约束
- linux interrupt, deferrable function
- deferrable initially deferred
- DEFERRABLE约束切换实验
- 1.Deferrable 延时校验(优化)
- OCP-047 SET CONSTRAINTS DEFERRABLE OR IMMEDIATE
- 《Oracle编程艺术》学习笔记(17)-DEFERRABLE约束
- OCP-047约束延迟 SET CONSTRAINTS DEFERRABLE OR IMMEDIATE
- What’s different between deferrable functions and work queues
- Online algorithms for uploading deferrable big data to the cloud文章阅读笔记
- Could not find com.android.support.constraint:constraint-layout:1.0.2错误的解决
- Orcale中constraint的用法和介绍
- Javascript闭包(closure) 深入浅出
- 沙拉公主的困惑 cash
- 成功人士须具备的15种良好心态
- 解决Eclipse中js文件含中文无法保存的问题
- hdu 2141
- 创建constraint时的选项:not deferrable和deferrable
- 普通视图和物化视图的区别
- Chrome自带的HTTP请求抓包查看系统
- 第11周报告1
- Hibernate 事务和并发 | hibernate 实战(第二版) 第10章事务和并发 | 笔记
- What is the difference between ./ and sh to run a script?
- Linux下使用mail、mutt发送邮件
- Oracle的rownum原理和使用
- VC:程序、进程和线程