Sql 如何在非唯一的表上创建索引?
我希望在非主键列上建立索引,但此列中可能有空值。我发现在一个普通的唯一索引上,它(正确地说)只允许一个null 可能吗 这个的语法是什么Sql 如何在非唯一的表上创建索引?,sql,sql-server-2005,indexing,unique-key,Sql,Sql Server 2005,Indexing,Unique Key,我希望在非主键列上建立索引,但此列中可能有空值。我发现在一个普通的唯一索引上,它(正确地说)只允许一个null 可能吗 这个的语法是什么 CREATE INDEX idxname ON table(col1); 看 请参见@Mark:SQL标准没有提到索引,只提到约束。经典地说,我认为DB2首先引入了“UNIQUE with至多一个NULL”解释,而大多数其他DBMS也随之引入。除非表(col1)上的索引idxname为NULL,否则可以方便地创建唯一的“”'。遗憾的是,我知道没有一个系统可以
CREATE INDEX idxname ON table(col1);
看
请参见@Mark:SQL标准没有提到索引,只提到约束。经典地说,我认为DB2首先引入了“UNIQUE with至多一个NULL”解释,而大多数其他DBMS也随之引入。除非表(col1)上的索引idxname为NULL,否则可以方便地创建唯一的“
”代码>'。遗憾的是,我知道没有一个系统可以做到这一点。@Jonathan:Oracle(10g)中允许在唯一列中使用多个null,无论唯一性是由约束还是由索引定义的-只是测试了一下以验证。@Bob-谢谢;知道这一点很有趣(这也是为什么这么做很有用)。@Mark:SQL标准没有提到索引,只提到约束。经典地说,我认为DB2首先引入了“UNIQUE with至多一个NULL”解释,而大多数其他DBMS也随之引入。除非表(col1)上的索引idxname为NULL,否则可以方便地创建唯一的“”代码>'。遗憾的是,我知道没有一个系统可以做到这一点。@Jonathan:Oracle(10g)中允许在唯一列中使用多个null,无论唯一性是由约束还是由索引定义的-只是测试了一下以验证。@Bob-谢谢;知道这一点很有意思(这就是为什么这么做很有用)。是的,我可能应该在我发布这个问题之前查看一下创建索引的语法是如何工作的!是的,在我发布这个问题之前,我可能应该看看创建索引的语法是如何工作的!