当前位置: 首页 > 面试题库 >

创建INDEX的UNIQUE参数-用途是什么?

邬英武
2023-03-14
问题内容

为什么INDEX创建语句具有UNIQUE参数?

据我了解,非聚集索引包含一个书签,即指向行的指针,它应该是唯一的以区分甚至非唯一行,
因此确保非聚集索引是唯一的?
正确的?

因此,我了解没有唯一索引只能在聚簇表上吗?自从

  • “视图上的聚集索引必须唯一” [1]

由于“聚集索引的底部或叶级包含表的实际数据行”
[1],因此我是否正确理解可以通过唯一约束(可能是全部或全部)来获得与UNIUE对聚集索引相同的效果。表[2]的列的一部分?

那么,带UNIQUE参数作为索引的原因是什么?
除了混淆基本概念定义[3]

更新:
这又是一个陷阱-解释一些已经基于未定义术语进行过多次解释的东西,从而将所有解释转换为永无止境的猜谜游戏。
请参阅我的子问题[4],这里实际上是对同一问题的重新措词。

Update2:
问题在于模棱两可,缺少定义或在不正确的上下文中不恰当地使用术语。如果将索引定义为用于(查找和)标识/指向实际数据的结构,则非唯一索引或NULL索引没有任何意义。再见

引用:
[1]
创建索引(Transact-SQL)
http://msdn.microsoft.com/zh-
cn/library/ms188783.aspx

[2]
创建表(Transact-SQL) http://msdn.microsoft.com/zh-
cn/library/ms174979.aspx

[3]
唯一索引或唯一键?
唯一索引或唯一键?

[4]
什么是索引,非聚集索引可以是唯一的吗?
什么是索引,非聚集索引是否可以唯一?


问题答案:

UNIQUE索引子句实际上只是SQL Server和其他一些DBMS中语法的古怪之处。在标准SQL中,唯一性约束是通过使用PRIMARY
KEY和UNIQUE CONSTRAINT语法实现的,而不是通过索引来实现的(标准SQL中没有索引)。

SQL Server在内部使用以实现唯一性约束的机制称为唯一索引。每当您创建PRIMARY
KEY或UNIQUE约束时,都会自动为您创建一个唯一索引。出于SQL Server开发团队最广为人知的原因,他们决定将UNIQUE关键字作为CREATE
INDEX语法的一部分公开,即使约束语法可以完成相同的工作。

为了清晰和标准支持,我建议您避免在任何可能的地方显式创建UNIQUE索引。请改用PRIMARY KEY或UNQIUE约束语法。



 类似资料:
  • Pandas DataFrame有一个重命名方法,它使用一个名为“index”的参数。我不理解文档中对参数的描述:DataFrame.rename 具体来说,我使用它就像文档网页上的示例: 我理解结果,但我不明白为什么要设置。 参数用于什么?为什么示例设置了?

  • 问题内容: 我是Java的初学者,我想以一种简单的方式知道为什么您应该使用参数化构造函数而不是编译器提供的默认构造函数。 谢谢 问题答案: 默认构造函数将您的对象可能具有的所有属性设置为0,false等。如果要立即设置属性,则可以使用参数化的构造函数。当然,也可以使用您自己的构造函数为您提供在创建对象之前(技术上而言)执行代码的选项。 顺便说一句:“默认值不会为属性设置任何值”的答案是错误的。例如

  • 本文向大家介绍MySQL SUBSTRING_INDEX()函数的用途是什么?,包括了MySQL SUBSTRING_INDEX()函数的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 MySQL SUBSTRING_INDEX()函数在出现定界符之前从给定字符串返回子字符串。出现次数被指定为其参数。借助于SUBSTRING_INDEX()函数的语法,将会更加理解如下: 语法 这里,  St

  • 问题内容: 我不了解Java的这一功能。我知道它使编码更容易,有时看起来更整洁,但这的实际用途是什么?相反,我觉得最好显示警告,因为将来任何人在修改代码之前都可以引用它们。这@SuppressWarnings是否提高了编译效率,还是根据任何编码标准? 问题答案: 其他答案已经解释了很多用例,但是我想强调一点, 有时您绝对需要使用它来克服语言本身的局限性,在这些情况下,使用绝对是合法的。 在其他情况

  • 问题内容: java中有什么用? 请解释一下。 问题答案: 可能这个例子会帮助您。

  • 本文向大家介绍sinon.js的用途是什么?,包括了sinon.js的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 SinonJS提供独立的测试间谍,存根和模拟。这是一个我们可以用来创建用于单元测试的对象模拟的库。 间谍-可以用来追踪执行情况的伪造函数。 存根-函数替换,我们可以从中返回所需的内容或使我们的函数以适合我们测试多个场景的方式工作。 嘲笑-假方法 所有这些对象都有助于对我们的代