Oracle中Constraint的状态参数initially与deferrable

简介:  在Oracle数据库中,关于约束的状态有下面两个参数:            initially (initially immediate 或 initially deferred)            deferrable(deferrable 或 not deferrable)      第1个参数,指定默认情况下,约束的验证时刻(在事务每条子句结束时,还是在整个事务结束时)。

 在Oracle数据库中,关于约束的状态有下面两个参数:
            initially (initially immediate 或 initially deferred)
            deferrable(deferrable 或 not deferrable)
      第1个参数,指定默认情况下,约束的验证时刻(在事务每条子句结束时,还是在整个事务结束时)。
      第2个参数,指定了在事务中,是否可以改变上一条参数的设置。
      如果不指定上述参数,默认设置是 initially immediate not deferrable。
      注意:如果约束是not deferrable,那么它只能是initially immediate,而不能是initially deferred。

 

测试①,initially immediate:
SQL> create table nlist (
  2      nid number
  3  );
 
Table created
 
SQL> alter table nlist add constraint pk_nlist primary key (nid) initially immediate;
 
Table altered
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> insert into nlist values (1);
 
insert into nlist values (1)
 
ORA-00001: 违反唯一约束条件 (TEST.PK_NLIST)
 

测试②,initially deferred:
SQL> create table nlist (
  2      nid number
  3  );
 
Table created
 
SQL> alter table nlist add constraint pk_nlist primary key (nid) initially deferred;
 
Table altered
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> commit;
 
commit
 
ORA-02091: 事务处理已回退
ORA-00001: 违反唯一约束条件 (TEST.PK_NLIST)
 
测试③,initially immediate deferrable:
SQL> create table nlist (
  2      nid number
  3  );
 
Table created
 
SQL> alter table nlist add constraint pk_nlist primary key (nid) initially immediate deferrable;
 
Table altered
 
SQL> set constraint pk_nlist deferred;
 
Constraints set
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> commit;
 
commit
 
ORA-02091: 事务处理已回退
ORA-00001: 违反唯一约束条件 (TEST.PK_NLIST)
 
测试④,initially deferred deferrable:
SQL> create table nlist (
  2      nid number
  3  );
 
Table created
 
SQL> alter table nlist add constraint pk_nlist primary key (nid) initially deferred deferrable;
 
Table altered
 
SQL> set constraint pk_nlist immediate;
 
Constraints set
 
SQL> insert into nlist values (1);
 
1 row inserted
 
SQL> insert into nlist values (1);
 
insert into nlist values (1)
 
ORA-00001: 违反唯一约束条件 (TEST.PK_NLIST)

测试⑤:
SQL> create table nlist (
  2      nid number
  3  );
 
Table created
 
SQL> alter table nlist add constraint pk_nlist primary key (nid) initially deferred no deferrable;
 
alter table nlist add constraint pk_nlist primary key (nid) initially deferred no deferrable
 
ORA-01735: 无效的 ALTER TABLE 选项

目录
相关文章
|
SQL 运维 Oracle
Oracle 超时设置2:设置实例级参数
Oracle超时设置系列的第二篇文章,设置实例级参数
605 0
|
1月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
|
7月前
|
Oracle 关系型数据库 Java
Oracle 19c 查看隐含参数视图
Oracle 19c 查看隐含参数视图
107 7
|
7月前
|
SQL 监控 Oracle
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)
|
7月前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
122 7
|
7月前
|
运维 Oracle 关系型数据库
Oracle服务器参数文件:数据王国的“调控大师”
【4月更文挑战第19天】Oracle服务器参数文件,数据库的“调控大师”,掌控着内存管理、进程调度等关键设置。通过参数调整如SGA_MAX_SIZE和PROCESSES,实现性能优化和故障防控。虽然挑战重重,但成功的性能调优带来无尽成就感。它在备份恢复中也扮演重要角色,保障数据一致性与可用性。成为真正的“调控大师”,为数据王国效力!
|
7月前
修改oracle11g的awr快照参数
修改oracle11g的awr快照参数
55 0
|
7月前
|
SQL Oracle 关系型数据库
oracle查询数据库参数sql语句
oracle查询数据库参数sql语句

推荐镜像

更多