如何在非唯一的表上创建索引?

问题描述:

我想要一个非主键列的索引,但是这个列可能有空值。我发现在一个正常的唯一索引,它(正确如此)只允许一个null。如何在非唯一的表上创建索引?

这可能吗?

和这是什么语法?

+0

@马克:SQL标准只字未提指标 - 只有大约约束。经典的说,我相信DB2首先引入了'最多只有一个NULL'的解释,而其他大多数DBMS都是如此。能够执行CREATE UNIQUE UNLESS NULL INDEX idxname ON table(col1);''会很方便。可悲的是,我知道没有哪个系统可以做到这一点。 – 2010-05-28 05:45:49

+0

@Jonathan:在Oracle(10g)中允许在UNIQUE列中有多个NULL,无论是由约束还是由索引定义唯一性 - 只需对其进行测试即可验证。 – 2010-05-28 11:55:18

+0

@Bob - 谢谢;这是有趣的知道(并且为什么SO是有用的)。 – 2010-05-28 13:36:46

CREATE INDEX idxname ON table(col1); 

MSDN

+1

是的,我可能应该查找如何创建索引的语法工作之前,我发布该问题! – Diskdrive 2010-05-30 23:47:17