您的位置: 首页 > 技术问答 > 如何在非唯一的表上创建索引? 如何在非唯一的表上创建索引? 分类: 技术问答 • 2022-06-23 23:35:01 问题描述: 我想要一个非主键列的索引,但是这个列可能有空值。我发现在一个正常的唯一索引,它(正确如此)只允许一个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
@马克:SQL标准只字未提指标 - 只有大约约束。经典的说,我相信DB2首先引入了'最多只有一个NULL'的解释,而其他大多数DBMS都是如此。能够执行CREATE UNIQUE UNLESS NULL INDEX idxname ON table(col1);''会很方便。可悲的是,我知道没有哪个系统可以做到这一点。 – 2010-05-28 05:45:49
@Jonathan:在Oracle(10g)中允许在UNIQUE列中有多个NULL,无论是由约束还是由索引定义唯一性 - 只需对其进行测试即可验证。 – 2010-05-28 11:55:18
@Bob - 谢谢;这是有趣的知道(并且为什么SO是有用的)。 – 2010-05-28 13:36:46