oracle db中的条件唯一约束
发布时间:2020-12-12 13:05:17 所属栏目:百科 来源:网络整理
导读:我有一种情况,我需要根据另一个列值对列[attribute]强制执行唯一的约束. 所以例如我有一个像Table(ID,EID,Name,ISDeleted) ISDeleted只能有一个值为null或’y'(活动或删除),我想仅在RecordStatus = null时才为EID,RecordStatus创建一个唯一的约束,因为我不关
我有一种情况,我需要根据另一个列值对列[attribute]强制执行唯一的约束.
所以例如我有一个像Table(ID,EID,Name,ISDeleted) ISDeleted只能有一个值为null或’y'(活动或删除),我想仅在RecordStatus = null时才为EID,RecordStatus创建一个唯一的约束,因为我不关心是否有多个具有相同ID的删除记录.请注意,EID可以具有空值. 我正在使用Oracle DB. 您不能创建约束.但是您可以创建一个独特的基于函数的索引.这充分利用了Oracle不索引NULL值的事实 – 其中isDeleted为NOT NULL的任何行将不会包含在索引中,因此唯一约束将不适用于它们.CREATE UNIQUE INDEX one_not_deleted ON table_name( (CASE WHEN isDeleted IS NULL THEN eid ELSE null END) ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读