【发布时间】:2010-05-28 05:15:15
【问题描述】:
我想要一个非主键列的索引,但该列中可能包含空值。我发现在一个普通的唯一索引上,它(正确地)只允许一个空值。
这可能吗?
这个的语法是什么?
【问题讨论】:
-
@Mark:SQL 标准对索引只字未提——只讲约束。经典地,我相信 DB2 最先引入了“UNIQUE with at most one NULL”解释,大多数其他 DBMS 也纷纷效仿。能够做到'
CREATE UNIQUE UNLESS NULL INDEX idxname ON table(col1);'会很方便。可悲的是,我知道没有系统可以做到这一点。 -
@Jonathan:Oracle (10g) 中允许在一个 UNIQUE 列中使用多个 NULL,无论唯一性是由约束还是由索引定义的 - 只需对此进行测试即可验证。跨度>
-
@Bob - 谢谢;知道这很有趣(这也是 SO 有用的原因)。
标签: sql sql-server-2005 indexing unique-key