oracle 中约束的应用

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:84

如果禁用约束条件,则可以在数据库中输入不符合规则的数据。启用约束:enable( validate) :启用约束,创建索引,[color=white]对已有及新加入的数据执行约束.enable novalidate :启用约束,创建索引,[color=white]仅对新加入数据强制执行约束,而不管表中现有数据. 禁用约束:disable( novalidate):关闭约束,删除索引,[color=white]可以对约束列的数据进行修改等操作[color=white].disable validate :关闭约束,删除索引,[color=white]不能对表进行[color=white] [color=white]插入[color=white]/[color=white]更新[color=white]/[color=white]删除等操作[color=white]. INITIALLY IMMEDIATE 初始化立即执行--在[color=#C00000]每条语句执行结束时检验约束INITALLY DEFERRED 初始化延迟执行,一直等到[color=#C00000]事务完成后(或者调用 set constraint immediate 语句时)才检验约束注意,你也可以对一个约束使用该命令,你不必让所有可延迟的约束都变为延迟执行的:[color=white]SQL>setconstraints all deferred; 或者[color=white] SQL> set constraints allimmediate;延迟约束有哪些实际用处呢? 有很多。[color=#C00000]它主要用于物化视图(快照)。这些视图会使用[color=#C00000]延迟约束来进行视图刷新。在刷新物化视图的过程中,可能会破坏完整性,而且将不能逐句检验约束。但到执行[color=#C00000] COMMIT 时,数据完整性就没问题了,而且[color=#C00000]能满足约束。没有延迟约束,物化视图的约束可能会使刷新过程不能成功进行。使用延迟约束的另一个普遍原因是,当预测是否需要[color=#C00000]更新父[color=#C00000]/[color=#C00000]子关系中的主键时,它有助于[color=#C00000]级联更新。 如果你将外键设为可延迟、但初始化为立即执行,那么你就可以将所有约束设置为可延迟。将父键更新为一个新值--至此子关系的完整性约束不会被验证。将子外键更新为这个新值。COMMIT--只要所有受更新影响的子记录都指向现有的父记录,这条命令就能成功执行。

本文标签:
本文标题:oracle 中约束的应用
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】