Oracle维护数据完整性.ppt

Oracle维护数据完整性.ppt

ID:48088462

大小:390.50 KB

页数:34页

时间:2020-01-14

Oracle维护数据完整性.ppt_第1页
Oracle维护数据完整性.ppt_第2页
Oracle维护数据完整性.ppt_第3页
Oracle维护数据完整性.ppt_第4页
Oracle维护数据完整性.ppt_第5页
资源描述:

《Oracle维护数据完整性.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、维护数据完整性目标完成这一课的学习后,您应该能达到下列目标:实施数据完整性约束维护完整性约束从数据字典获取约束信息数据完整性应用程序代码表数据完整性约束数据库触发器约束的类型约束NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECK说明指示出列不能包含空值指示一个列或列的组合是唯一的指示一个列或列的组合作为表的主键指示一个列或列的组合在引用完整性 约束中作为外键指定表中的每一行必须满足的条件约束的状态ENABLE NOVALIDATE现有数据新数据DISABLE NOVALIDATEDISABLE VA

2、LIDATE==ENABLE VALIDATE约束的状态转换规则除非指定NOVALIDATE,否则ENABLE表示VALIDATE。除非指定VALIDATE,否则DISABLE表示NOVALIDATE。VALIDATE和NOVALIDATE没有缺省的ENABLE和DISABLE状态。当唯一键或主键从DISABLE状态转为ENABLE状态且没有现有索引时,将自动创建唯一索引。(如果索引可延迟,则将存在异常。)与此类似,当唯一键或主键从ENABLE转为DISABLE且是使用唯一索引启用时,则删除该唯一索引。当任何约束从NOVAL

3、IDATE状态转为VALIDATE状态时,必须检查所有的数据。但是,从VALIDATE转为NOVALIDATE时,将忽略数据已经过检查这一事实。将单个约束从ENABLENOVALIDATE状态转为ENABLEVALIDATE状态时,并不禁止使用读取、写入或其它DDL语句。约束检查DML语句检查不可延迟 的约束COMMIT检查可延迟 的约束查看约束信息SELECTCONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS,DEFERRABLE,DEFERRED,VALIDATEDFROM

4、USER_CONSTRAINTS;将约束定义为立即或延迟使用SETCONSTRAINTS:SETCONSTRAINT

5、CONSTRAINTS{constraint

6、ALL}{IMMEDIATE

7、DEFERRED}ALTERSESSION语句还包含将约束设置为DEFERRED或IMMEDIATE的子句SETCONSTRAINTS。ALTERSESSIONSETCONSTRAINT[S]={IMMEDIATE

8、DEFERRED

9、DEFAULT}约束定义原则主约束和唯一性约束:将索引放在单独的表空间中。如果经常使用批量加载,请使用

10、非唯一索引。自引用外键:在初始加载后定义或启用外键。延迟约束检查。外键注意事项相应解决方法目标操作删除父表级联约束截断父表在子表上执行DML操作确保包含父键的表空间联机使用CASCADECONSTRAINTS子句删除包含父表的表空间禁用或删除外键约束的定义在创建表的时候定义在修改表的时候定义约束的结构columndatatype[CONSTRAINTconstraint]{[NOT]NULL

11、UNIQUE[USINGINDEXindex_clause]

12、PRIMARYKEY[USINGINDEXindex_clause]

13、R

14、EFERENCES[schema.]table[(column)][ONDELETECASCADE]

15、CHECK(condition)}constraint_state:==[NOTDEFERRABLE

16、DEFERRABLE[INITIALLY{IMMEDIATE

17、DEFERRED}]][DISABLE

18、ENABLE[VALIDATE

19、NOVALIDATE]]创建表时定义约束createtablecreate_table_cons(id1char(10)constraintcts_id_pkprimarykeyDeferra

20、bleInitiallydeferredusingindextablespaceind1_00001,id2varchar2(20))tablespaceusers;修改表时定义约束altertablecreate_table_consaddconstraintcts_id2_ukunique(id2)deferrableinitiallyimmediateusingindextablespaceind1_00001;启用约束对于当前已有索引的PRIMARYKEY和UNIQUE约束,启用NOVALIDATE约束比启用VALI

21、DATE约束要快得多,这是因为,如果约束是可延迟的,则不检查现有数据是否违反约束。不要求锁定表。ENABLE NOVALIDATEaltertablecreate_table_consenablenovalidateconstraintcts_id_pk;启用ENABLENOVALIDAT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。