创建 INDEX 的独特论据 - 用途是什么?

2023-11-30

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

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

那么,我是否理解非唯一索引只能在聚集表上?自从

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

由于“聚集索引的底部或叶级包含表的实际数据行”[1],我是否正确理解,通过对(可能是所有或表 [2] 的一部分)列?

那么,什么给索引带来了UNIQUE参数呢?
除了基本概念定义的混淆之外 [3]


Update:
这又是同样的陷阱——根据未定义的术语解释已经解释过很多次的东西,将所有解释转化为永无休止的猜测游戏。
请参阅我的子问题 [4],它实际上是对同一问题的重新措辞。


Update2:
问题在于含糊不清、缺乏定义或在不适当的上下文中使用不当的术语。如果索引被定义为用于(查找和)识别/指向真实数据的结构,则非唯一或 NULL 索引没有任何意义。再见


Cited:
[1]
创建索引 (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188783.aspx

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

[3]
唯一索引还是唯一键?
唯一索引还是唯一键?

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


虽然非唯一索引足以区分行(正如您所说),UNIQUE索引充当约束:它将防止重复项输入到数据库中 - 其中“重复项”是索引列中包含相同数据的行。

Example:

 Firstname  | Lastname  | Login
================================
 Joe        | Smith     | joes
 Joe        | Taylor    | joet
 Susan      | Smith     | susans

我们假设默认情况下,登录名是根据名字 + 姓氏的第一个字母生成的。

当我们尝试将 Joe Sciavillo 添加到数据库时会发生什么?通常,系统会很乐意生成登录名joes并插入(Joe,Sciavillo,joes)。现在我们有两个用户具有相同的用户名 - 可能是一件坏事。

现在假设我们有一个UNIQUE索引于Login列 - 在允许插入新行之前,数据库将检查是否存在具有相同数据的其他行。换句话说,尝试插入另一个joes将被拒绝,因为该数据在该行中不再是唯一的。

当然,您可以在多个列上拥有唯一索引,在这种情况下组合数据必须是唯一的(例如,唯一索引Firstname,Lastname会很高兴地接受争吵(Joe,Badzhanov),因为该组合尚未出现在表中,但会拒绝第二行(Joe,Smith))

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建 INDEX 的独特论据 - 用途是什么? 的相关文章

随机推荐

  • 罕见的 IE10 bug:背景位置的 CSS 动画在多个背景和百分比下失败

    这是一个非常具体的错误 但是 我希望有人能向我展示解决方法 该错误主要在于 IE10 无法执行 CSS 动画background position当这两个条件满足时同时 拥有多重背景 Setting background position以
  • 按列提取 PDF 文本

    我的问题是 如何从按列划分的 PDF 文件中提取文本 并获得按该列分隔的结果 背景 我从事一个关于文本分析 尤其是科学文本 的项目 这些文本有时以多栏布局发布 每栏都有一个单独的页码 要按布局页码对提取的文本进行排序 按列提取文本会很有用
  • Redis 中的范围查询 - Spring Data Redis

    有没有一种方法可以使用 Spring Data Redis 在 Redis 中实现范围查询 Eg 如果我的 Pojo 类有 Date 不是主键 并且我需要属于所需日期期间的数据 是否可以使用 Spring Data Redis 构建相同的查
  • iframe 内的页面看不到自己的 cookie

    我们有 2 个位于不同域的网站 为了简单起见 我们假设它们是 App 运行在上面的 SPA 应用程序main app com app Host 运行一个简单的index html页面random site com index html in
  • awk 搜索一个文件中的列,如果匹配则打印两个文件中的列

    我正在尝试比较 file1 中的第 1 列和文件 2 中的第 3 列 如果它们匹配 则打印 file1 中的第一列和 file2 中的前两列 这是每个文件的示例 file1 Cre01 g000100 Cre01 g000500 Cre01
  • 放置现有的sqlite数据库并读取

    在 android 文件夹结构中将现有的 sqlite 数据库放置在哪里 是drawable文件夹还是layout文件夹 我没有找到任何解决方案 任何帮助将不胜感激 你应该把它放在assets文件夹 这样你就可以确保它会附加到你的 apk
  • Vuejs图片src动态加载不起作用

    我刚刚开始使用 Vue js 和 Vue CLI 我遇到了一个问题 我不明白为什么我不能从范围内动态设置图像 但我可以直接在 HTML 中编写它 obj img是一个字符串 assets logo png也很有价值 我伪造 ajax 调用超
  • 如何生成 firebase 注册令牌

    我正在尝试使用新方法生成 firebase 注册令牌 但无法生成以下代码 MyFirebaseInstanceIdService java public class MyFirebaseInstanceIdService extends F
  • UIView 边界和框架的属性观察者的反应不同

    当我正在探索观察的选项时UIView s bounds or frame改变 提到here and here 我遇到了一个非常奇怪的差异 didSet and willSet将根据您放置的位置不同地触发UIView在视图层次结构中 如果我使
  • Gmail 不会在电子邮件中呈现 html

    我将用一个非常基本的示例再尝试一次 当我使用 PHP 向电子邮件客户端发送电子邮件时 除了 gmail 之外 没有任何问题 当我在 gmail 中查看电子邮件时 我看到的只是邮件的代码 Gmail 不显示 HTML 它只是显示代码 这是我的
  • 如何在 Accord.net 中保存“学习状态”?

    我是机器学习和 Accord net 的初学者 我了解了如何训练它然后使用它 但在企业环境中 在服务器上运行它 我如何坚持 Accord net 的学习成果 我是否需要保存所有训练数据并在每次重新启动应用程序时重新训练 通过添加在代码中导入
  • Linux crontab 每月第 n 个星期六

    除周六外 我喜欢在所有工作日恢复跑步 我的 crontab 条目 30 16 1 2 3 4 5 backup sh 这个条目工作正常 另外 我喜欢在第一 第三个星期六恢复 如果一个月内有第五个星期六可用 则应运行备份 crontab 的条
  • 从 Scanner 获取输入时 Maven 挂起

    我正在设计一个程序 该程序必须使用 mvn test 命令运行并从命令行获取用户输入 当我使用 mvn test 运行程序时 一切正常 直到Scanner next 执行后 CLI 挂起 我必须关闭该程序 my test method pu
  • PHP if not equal(!=) and or (||) 问题。为什么这不起作用?

    我知道这是简单的 PHP 逻辑 但它就是行不通 str dan if str joe str danielle str heather str laurie str dan echo a href Get to know get the a
  • YouTube 数据 API v3 调用返回的最大结果是多少

    Context 我正在提供一些有关使用 YouTube Data API V3 进行 HTTP GET 的咨询 为了开发一个基于 Windows 的应用程序来从 Youtube 获取结果列表 例如特定类别或特定标签 我们愿意使用任何编程语言
  • 使用 Zend/PHP 删除 YouTube 视频

    我正在使用 Zend 和 PHP 从我的主页上传和删除视频 上传部分工作正常 但下载部分比较复杂 videoEntryToDelete yt gt getVideoEntry videoId yt gt delete videoEntryT
  • 如何将 HTML 小部件与外部 CSS 隔离

    我使用 AngularJS 开发了一个即时消息组件 可以向任何网页添加即时消息功能 该组件相当复杂 其样式表长达约 800 行 当该组件部署到第三方网站时 我遇到了问题 有时 主机网站的 CSS 会影响聊天小部件的样式 当组件被添加到新的
  • 在尝试使用 Timer.scheduledTimer 的 SwiftUI 代码中获取未解析的标识符“self”

    在 SwiftUI 中 我注意到使用一个计时器 尝试 1 这不起作用 因为获取 使用未解析的标识符 自我 var timer2 Timer Timer scheduledTimer withTimeInterval 1 repeats tr
  • 我可以将 __func__ 替换为 C 宏中的标识符名称吗?

    我想编写一个 C 宏 它采用以下内容 int foo MY MACRO 并将其扩展为 int foo macro var foo 我发现我无法使用 func 因为它实际上并没有在宏中得到扩展 预处理器将其视为变量 有什么方法可以让它发挥作用
  • 创建 INDEX 的独特论据 - 用途是什么?

    为什么 INDEX 创建语句有 UNIQUE 参数 据我了解 非聚集索引包含一个书签 一个指向行的指针 它应该是唯一的 以区分甚至非唯一的行 那么确保非聚集索引是唯一的 正确的 那么 我是否理解非唯一索引只能在聚集表上 自从 视图上的聚集索