【问题标题】:How do I create an index on a table that is non unique?如何在非唯一表上创建索引?
【发布时间】: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


【解决方案1】:
CREATE INDEX idxname ON table(col1);

MSDN

【讨论】:

  • 是的,我可能应该在发布该问题之前查看创建索引的语法是如何工作的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2016-01-15
  • 2010-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多