Oracle管理约束(五)Oracle使用延期约束检查

默认情况下,当执行DML操作时,如果键入了违反约束规则的数据,则会立即提示错误信息。某些情况下,可能希望在事务结束时进行约束 检查,如级联更新外部键、给自参照表装载数据等。需要注意,如果使用延期约束检查,那么在定义约束时必须指定 DEFERRABLE 选项。实 例如下:

11:53:27 SQL> alter table dept1

11:53:38   2   add constraint pk_dept1 primary key (deptno);

Table altered.

11:53:58 SQL> alter table emp1

11:54:00   2    add constraint fk_emp1 foreign key(deptno) references dept1(deptno) deferrable;

Table altered.

——deferrable 可延迟 (默认是immediate ,非 deferr 延迟)

11:54:08 SQL> set constraint fk_emp1 deferred;

Constraint set.

---------将约束fk_emp1 进入延迟状态

11:55:04 SQL> select * from emp1;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-DEC-80        800                    20

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

7566 JONES      MANAGER         7839 02-APR-81       2975                    20

7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

7900 JAMES      CLERK           7698 03-DEC-81        950                    30

7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

12 rows selected.

11:55:41 SQL> select * from dept1;

DEPTNO DNAME          LOC

---------- -------------- -------------

10 ACCOUNTING     NEW YORK

20 RESEARCH       DALLAS

30 SALES          CHICAGO

40 OPERATIONS     BOSTON

11:55:44 SQL> update emp1 set deptno=50 where empno=7900;

1 row updated.

11:56:12 SQL> commit;

commit

*

ERROR at line 1:

ORA-02091: transaction rolled back

ORA-02291: integrity constraint (SCOTT.FK_EMP1) violated - parent key not found

11:56:28 SQL>  select * from emp1;

EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

7369 SMITH      CLERK           7902 17-DEC-80        800                    20

7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

7566 JONES      MANAGER         7839 02-APR-81       2975                    20

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2024-09-09 01:46:25

Oracle管理约束(五)Oracle使用延期约束检查的相关文章

提升用户体验和交付应用程序 Oracle管理云获得多行业用户认可

2月23日,甲骨文宣布Oracle管理云(Oracle Management Cloud)业务实现大幅增长,在其上市后一年内即在全球赢得近950家新客户和合作伙伴,包括FORS.IDEA Cellular和Safexpress,它们均选择Oracle管理云来提高IT资源利用率,提升开发运维生产力,确保关键应用程序持续保持运行. Oracle管理云是Oracle云平台(Oracle Cloud Platform)的一部分,集成了一整套的新一代监测.管理和分析云服务,利用机器学习和大数据技术处理客户

Oracle 11g系列—6—Oracle中表的约束

完整性约束指的是数据库中数据的正确性和相容性.主要指下面的: primary key 主键 foreign key 外键 unique 唯一 not null 非空 check 检查约束 在Oracle中,使用constraint(英文的意思就是约束)关键字 为约束命名.如果用户没有命名,那么系统会自动会用户创建 的约束命名. OK,那我们接着就详细讲讲这些. 一.Not null 约束 从字面很好理解,就是非空约束,表 示某些列的值不可缺少的,在插入数据的时候,如果没有为它赋值,那么会提示错误

oracle删除主键查看主键约束及创建联合主键_oracle

1,主键的删除 ALTER TABLE TABLENAME DROP PRIMARY_KEY 执行上面的SQL可以删除主键:如果不成功可以用 ALTER TABLE TABLENAME DROP CONSTRAINTS COLUMN CASCADE; --删除约束 ALTER TABLE TABLENAME DISABLE PRIMARY_COLUMN ; --设置被设置为主键的列为无效 DROP INDEX INDEX_NAME; --删除主键索引 2,查看主键约束 SELECT * FROM

oracle学习(五) 数据完整性

数据的完整性就是指数据库中的数据在逻辑上的一致性和准确性.数据完整性一般分为3种:域完整 性.实体完整性和参照完整性.完整性约束是通过限制列数据.行数据和表之间的数据来保证数据的完 整性.完整性约束定义在表上,存储在数据字典中. 1.域完整性 域完整性又称列完整性,是指确定一个数据集对某一列是否有效和确定是否允许空值.域完整性通常 是通过使用有效性检查来实现的,还可以通过限制数据类型.格式或者可能的取值范围来实现. Oracle可以通过check约束实现域完整性.check约束表示一个字段的输入

【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)

RAC 特殊问题和实战经验(五) 共享存储 在需要将一个 LUN (逻辑单元号)映射给多个节点.为集群提供一个共享的存储卷时,同一个存储 LUN 在各个主机端的 LUNID 必须是相同的.比如:  (一) 在为多个 ESX 节点创建一个 VMFS 卷的时候 (二) 在双机 HA 集群创建共享存储的时候 回到顶部 时间一致性 集群模式下,各个节点要协同工作,因此,各主机的时间必须一致.因此,各主机的时间必须一致.各个节点之间的时间差不能超时,一般如果超过 30s,节点很可能会重启,所以要同步各节点

Oracle优化的五个方面

oracle|优化 在过去的十年中, Oracle 已经成为世界上最专业的数据库之一.对于 IT 专家来说,就是要确保利用 Oracle 的强大特性来提高他们公司的生产力.最有效的方法之一是通过 Oracle 调优.它有大量的调整参数和技术来改进你的 Oracle 数据库的性能.        Oracle 调优是一个复杂的主题.关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的.         在这篇简介中,我们将

利用Oracle管理服务器将数据导入导出

在Oracle 9i中可以方便的把数据导出为文件,或者从文件导入.通过Oracle的管理服务器(Oracle Management Server,OMS)可以方便的实现,整个操作过程中有很多地方需要解释说明,但是完整的指导资料不多.各大论坛上很多所谓的高手,对该主题的回答往往是,高手是不用OMS的,用exp/impl吧.如果你执意追问,他多半会告诉你,其实我也不知道.如果有一份文档可以傻瓜式的指导他们如何来做,大多数人会欣喜若狂且若无其事的下载保存,回去慢慢研究. 使用EntERPrise Ma

Oracle管理安全和资源(三)Oracle资源管理器简介

Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源,为不同的会话分配不同的数据库资源.DBRM管理的资源主要包括CPU时间.下面分以下几个章节介绍: Oracle DBRM帮你处理哪些问题 Oracle DBRM是怎样处理这些问题的 Oracle DBRM包含的内容 Oracle DBRM资源分配方法 Oracle DBRM的权限管理 1.Oracle DBRM帮你处理哪些问题  当数据库服务器资源由操作系统来分配时,你可能

Oracle管理安全和资源(一)Oracle策略文件

Profile 是口令限制.资源限制的命名集合.建立Oracle数据库时,Oracle会自动建立Default Profile,然后分配各用户,如果没有指定,用户会启用default profile. 1.查看口令文件 09:07:15 SQL> select username ,profile from dba_users; USERNAME                       PROFILE ------------------------------ ---------------