yy 的个人资料每天都要做出不同的选择日志列表 工具 帮助

日志


7月4日

完整性约束的状态

在学习的过程中,自己看了好几遍还是不能把约束的四种状态分清楚,经过一个高人指点,终于茅塞顿开,现在,把我的理解过程跟大家分享一下:

完整性约束可以是以下的其中一种转态:

l         禁止非验证(DISABLE NOVALIDATE

l         禁止验证(DISABLE VALIDATE

l         允许非验证(ENABLE NOVALIDATE

l         允许验证(ENABLE VALIDATE

 

怎么理解这四种状态呢,它们之间又有什么区别,我们可以这样来理解,数据库中的数据是分为新数据(New data 现有数据(Existing data)的,而禁止(DISABLE)与允许(ENABLE)是针对新数据(New data)的,验证与非验证是针对现有数据(Existing data)的。

让我们先来理解允许、禁止以及验证非验证的含义:

如果约束是允许(ENABLE)的,当New data在插入或更新的时候会被检测,凡是不符合约束规则的数据都不允许被插入;

如果约束是禁止(DISABLE)的,当New data在插入或更新的时候,不管是否符合约束规则都能够进入数据库。

如果约束被设为非验证状态(NOVALIDATE),那么不管数据库中的现有数据(Existing data)是否符合约束规则,都不需要进行验证。

如果约束被设为验证状态(VALIDATE),那么就会对数据库中所有的现有数据(Existing data)进行验证,而如果约束是从非验证状态转为验证状态,那么就要先把那些不满足条件的数据删除或更新。

禁止验证(DISABLE VALIDATE)是属于一个特殊的状态,如果约束处于这一状态,则对约束字段的任何修改都是不允许的,也就是不允许任何的DML操作,就相当与该约束字段被锁定了。另外,基于约束的索引也会被删除,约束被禁止。

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

引用通告

此日志的引用通告 URL 是:
http://zheng-yy.spaces.live.com/blog/cns!9EF6623D1A03E61A!129.trak
引用此项的网络日志