问题标签 [unique-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5362 浏览

sql-server - 唯一索引、varchar 列和(空白)空格的行为

我正在使用 Microsoft SQL Server 2008 R2(带有最新的服务包/补丁)并且数据库排序规则是 SQL_Latin1_General_CP1_CI_AS。

以下代码:

产生以下结果:

(1 行受影响)

消息 2601,第 14 层,状态 1,第 8 行

无法在具有唯一索引“UniqueIndex”的对象“dbo.Test”中插入重复的键行。重复键值为 (sample )。

该语句已终止。

——————————————————</p>

>样品<

(1 行受影响)

我的问题是:

  1. 我假设索引不能存储尾随空格。谁能指出我指定/定义此行为的官方文档?
  2. 是否有更改此行为的设置,即使其将“sample”和“sample”识别为两个不同的值(顺便说一下),因此两者都可以在索引中。
  3. 为什么在地球上是 SELECT 返回一行?SQL Server 必须对 WHERE 子句中的空格做一些非常有趣/聪明的事情,因为如果我删除索引中的唯一性,两个 INSERT 都将运行正常,并且 SELECT 将返回两行!

任何正确方向的帮助/指针将不胜感激。谢谢。

0 投票
1 回答
379 浏览

mongodb - 在 mongo 集合中嵌入数组作为 Set(在数学意义上)

我放入集合中的对象的“模式”如下所示:

但我想确保孩子们被视为一个集合 - 在上面的示例中,我希望 Mongo 不接受记录,因为“Suraj”在数组中出现了两次。

我尝试在名称和孩子上创建一个唯一索引

然而,它的作用是在任何子名 + 民间名称上建立一个全球唯一的索引。也就是说,如果我没有唯一的名称索引,我将能够执行以下操作:

因为 p+c1、p+c2 和 p+c3 是不同的。如果我尝试插入以下内容:

然后我会得到

有没有办法在插入期间不进行 检查,如 https://stackoverflow.com/questions/9640233/unique-array-values-in-mongoose

0 投票
3 回答
1535 浏览

sql - 多列中的唯一索引键

我需要使用 SQL Server 在我的表中定义唯一索引键。

例如:

现在,我如何禁止使用唯一索引键在上表中插入错误数据,如上表中的第 4 个 ID?

0 投票
2 回答
3771 浏览

mongodb - mongoDB唯一索引不起作用

我有很多由 url 索引的文档。我像这样在 pymongo 的 url 上创建了一个索引

但我仍然可以插入具有重复 url 的文档。

我从 mongo shell 检查了索引是否确实存在,它显示了这个

设置是否background=True也意味着url插入文档时不会检查的唯一性?我完全困惑为什么唯一性不起作用?

0 投票
2 回答
116 浏览

mysql - 为什么我的 MySQL 唯一键失败了?

错误: 键“uneek”的重复条目“2147483647-1”

似乎我的 MLSNUMBER 唯一键在区分两个插入之前没有解析整个数字。

两者都以 5030011 开头...

这是我构建密钥的方法: ADD UNIQUE uneek( MLSNUMBER, POSITION)

有没有办法构建这个密钥,所以它接受整个 10 位而不是前 7 位?

提前致谢!

0 投票
1 回答
69 浏览

mapping - 将唯一数字映射到索引

假设我有一个唯一数字列表(例如 105、342、432、34 等),我想将它们映射到索引(0、1、2、3 等)。有没有通用的方法来做到这一点?如果没有,假设您事先知道列表中的所有数字,并且可以硬编码它们的值。如果这没有帮助,另一个限制因素可能是这些数字“几乎是连续的”。这意味着它们大部分是连续的,但可能存在间隙(您提前知道)。

0 投票
4 回答
262 浏览

mysql - MySQL UNIQUE 和 INDEX 在列上的使用

我想为名为“用户名”的列添加快速查找和唯一性的索引。我看到一个选项可以选择UNIQUEINDEX。我应该创建两者,还是只使用 UNIQUE?

我没有使用用户名作为主键。

0 投票
1 回答
9284 浏览

mysql - 如何按不在唯一索引中的列对 MySQL 表进行分区

让我们有一个简单的产品表。每个产品都有其唯一的 ID 和类别。用户经常按类别搜索,所以我想按类别划分产品。一个分区中的每个类别,例如

我该怎么做?因为当然我的 ID 列上有一个主键,并且需要我的 ID 是唯一的。在每个类别中不是唯一的。

但是 partitiong 有这个限制,即“表上的每个唯一键都必须使用表的分区表达式中的每一列”。

好吧,这不是让分区有点没用吗?还是我错过了什么?我应该怎么办?

http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html

0 投票
3 回答
2232 浏览

c# - 在 linq-sql 中插入具有唯一索引的多个记录表时出现 SqlException

我有一个带有 PK 列ItemID和列上的唯一索引的 sql 表Value

我正在使用 linq-sql 在表中插入多条记录(批量插入/更新)。在插入记录之前,我会进行“存在”检查。

如果列表具有相同的值,由于唯一索引,我得到以下异常。Item表没有记录。

异常消息:

无法在具有唯一索引“IDX_Item_Value_U_NC”的对象“dbo.Item”中插入重复的键行。
该语句已终止。

我该如何避免这种情况?

编辑:我不能做单次插入,所以我不能db.SubmitChanges()在 for 循环内移动调用。

EDIT2:到目前为止发布的答案涉及修复数据而不是 linq-sql 中的方法。我已经举了一个带有整数列表的简单示例。但实际上我有一个要插入的对象图列表,每个项目都会命中多个表以进行插入/更新。我找到了一种使用 linq (,等)的方法,我已将其发布为答案DataContextChangeSetDataContext.GetChangeSet().DeletesDataContext.GetChangeSet().Inserts

0 投票
2 回答
4384 浏览

mongodb - MongoDB中唯一索引的优势

我试图搜索 Mongo 文档,但无法真正找到有关唯一索引查询是否比非唯一索引查询更快的任何详细信息(给定相同的数据)

所以我理解唯一索引将具有高选择性和良好的性能。但是,给定两个连接唯一的字段,非唯一复合索引的执行速度会比唯一复合索引慢吗?

我假设唯一索引可以减慢插入速度,因为必须验证唯一性。但是,唯一索引的读取性能提升(如果有的话)真的值得吗?