问题标签 [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 回答
1213 浏览

java - 数据库唯一密钥、JPA 存储库和 getByUniqueKey 签名:它是如何工作的?

背景

数据表item

ItemRepository.java

CustomRepository.java

CustomRepositoryImpl.java

问题

如您所见,没有实现 interface ItemRepository。这意味着,该getByName方法只有一个签名,永远不会在任何地方实现。但它有效。如何?

附言

对于持怀疑态度的人来说,使用 Eclipse,当Ctrl按住鼠标并将鼠标悬停在getByName签名上时,单击Open Implementation根本不会打开任何 JAVA 文件。

0 投票
1 回答
3481 浏览

mysql - MySQL ERROR 1072:States Key 不存在,但它确实存在

抱歉,如果这是一个新手问题,但我已经有一段时间无法解决这个问题了,希望对 MySQL 有更好理解的人可以帮助我破译以下问题:

我有两个要维护的表,以便用户可以定义他们的偏好,而管理员可以维护他们对这些偏好的访问权限。而且我想确保如果管理员删除某些权限,首选项表会得到更新:

这两个表是:

当我运行这个时,它们都有唯一的索引:

因此,正在创建具有上述表的 uk_access 和 uk_pref。然而,当我运行时:

我收到“ERROR 1072 (42000): Key column 'uk_pref' doesn't exist in table”错误。对我来说,这对我来说是零意义的。我知道密钥存在,因为在创建表后我还运行了以下命令:

并收到重复键警告。我对另一张桌子做了同样的事情。
我还尝试使两个表的唯一索引名称相同。也就是说,我把它们都做了uk_pref,但无济于事。同样的错误。
我觉得这是一个我错过的非常简单的问题,但只是无法看到它。我希望另一双眼睛能指出我正在犯的错误。任何帮助深表感谢!

我寻找了类似的问题,但在这里找不到任何解决相同问题的问题。

编辑:AJ 指出了这一点,我忘了提到我试过了:
我也(首先)尝试绕过设置唯一键并执行以下操作:

MySQL 刚刚返回了一个语法错误。

0 投票
2 回答
2850 浏览

mysql - MySQL UNIQUE 约束多列条件

好吧,我有一个有 4 列(、、、、id)的表event_id,其中 id 是 PK,是FK,我的问题是:group_idisbnevent_idgroup_id

我需要 isbn 编号对于每个 都是唯一的event_id,让我给你一些应该可能的行和不应该行的示例:

每个group_id只出现一次event_id,但如果我用 3 列创建一个独特的约束,我将能够重复 isbn 只是改变event_id,而且我不希望这样,一旦isbn在 an 中使用event_id它就不能出现在另一个event_id中,一个event_id(比如说'1')可以重复相同ibsn的时间,只要它需要每个group_id

我知道我多次重复这个问题,但这是一个棘手的问题,我想降低得到错误答案的机会

EDIT1:关于@Andomar 的答案,isbn 必须通过基数 (1,n) 1-isbn -> n-group_id 与 group_id 相关,并且答案中的结构不这样做

0 投票
2 回答
3797 浏览

mongodb - MongoDB - 唯一多键索引未按预期工作

我对 MongoDB 中的多键索引有疑问。

我有一个名为 的集合users,其文档看起来或多或少像这样:

我想创建一个索引,votedObjectId并且我希望用户对每篇文章只投票一次。

我确保了一个唯一的索引(代码在 node.js - mongoskin 模块中)

然后我尝试为同一篇文章投票两次,它实际上添加了两次完全相同的投票。

如何确保数组不包含重复元素?

附言

我使用 {safe: true} 进行所有插入,并且我得到的重复值不是由插入操作返回,而是实际插入到集合中。

0 投票
9 回答
113509 浏览

mysql - 如何删除没有临时表的 MySQL 表中的所有重复记录

我已经看到了这方面的许多变化,但没有什么与我想要完成的完全匹配。

我有一个表格,TableA其中包含用户对可配置问卷的回答。列是member_id, quiz_num, question_num, answer_num

不知何故,一些成员的答案被提交了两次。所以我需要删除重复的记录,但要确保留下一行。

没有列,因此可能有两三行都包含完全相同的数据。

是否有删除所有重复项的查询?

0 投票
3 回答
14043 浏览

php - 在 mysql 和 PHP 中检查字段是否具有属性 `UNIQUE`

如何检查表中的字段是否设置为UNIQUE

例如,我有一个名为的表users,其中一个字段email设置为UNIQUE,一个字段picture未设置为UNIQUE,我想在选择之前检查该字段是否设置为UNIQUE好像不是,然后不要执行SELECT.

然后我尝试SELECT计算返回的行数,如果超过 1 则不是UNIQUE

但效率不高,如果没有重复怎么办。

检查字段是否设置为的最佳方法是UNIQUE什么PHP

编辑:没有重复并不意味着它UNIQUE有财产

0 投票
1 回答
113 浏览

db2 - 请问真正的唯一索引能站起来吗?

我最近遇到了一个 DB2 表,它具有三个不同的唯一索引。

最具体的一个是实际的唯一索引吗?或者唯一性的定义是否因 DB2 使用哪个索引来访问表而有所不同?

我有点困惑,因为索引 1 表明只要我对 A、B、C 的值是唯一的,我就可以对 D 和 E 有重复的值。但是索引 3 表示 A、B、C、D , E 是唯一的,所以我毕竟不能有 D 和 E 的重复值吗?

0 投票
1 回答
3568 浏览

sql - PostgreSQL 唯一索引复合键

我需要基于四列对表创建一个限制,其中两个是互斥的,我的意思是,如果一个是 NULL,另一个不是。

理想的脚本是这样的:

但是 Postgres 不允许这种连接。

如何实施此限制?

0 投票
1 回答
1728 浏览

doctrine-orm - UniqueEntity 使用 Doctrine 2

我正在使用 Zend Framework 2,并且我创建了一个用户实体。现在我正在尝试使用户名字段唯一。但是,出现以下错误。

我已添加此代码以进行唯一性检查

我可以看到这是 Symfony 中使用的一种方法。我如何将它用于 Zend Framework 2?

这是我正在使用的实体

0 投票
1 回答
133 浏览

mysql - 验证和创建唯一 ID

好的 - 对于我的项目,我被要求为我们必须转换一些数据的过程确定一些验证技术。让我给你一个背景。

我们从客户端接收数据 - 我们加载文件,并且只提取处理所需的字段。在这个阶段进行了一些检查。从这里我们在数据上运行脚本,这些脚本基本上完成了所有繁重的工作。(删除重复项、检查日期等)。然后它通过一个黑盒系统运行并向我们吐出结果。

客户通知我们,我们对特定群体的计数非常差。这个大约4百万美元。

我们有一个识别唯一成员的过程,通过生成一个 pol_ID、一个 Suf_ID 及其关联的组名,它们在我们的系统和我们的处理系统中被认为是唯一的。

我们需要一个流程来处理这些唯一成员的记录。在给定的时间段内,唯一成员可以拥有与其姓名相关联的一对多声明。

当我们收到索赔信息时,一般是使用payor_field + claimno + 一个生成的序列号(有时这个序列号就是claimno的最后两位)来处理的……

前任。三个索赔进入系统,通过加载处理后,我们看到客户端重复了索赔号 - 因为我们使用最后两位数字,它不再使它们唯一,并删除了三个记录中的两个。只保留第一个。

我的问题开始起作用,因为我们通常对声明进行假设,即如果我们解析最后两位数字,它是唯一的,在测试这种情况下,我们尝试在另一列中创建显式增量序列号以考虑这个唯一性。然后使我们的结果翻倍。

现在我的问题如下:

还有另一种方法可以使这些声明独一无二吗?自动增量不是一个选项。考虑到客户可以发送重复的claimno,这是我们的问题所在,他们可能会回收他们的claimno。

由于它是基于月份的,所以最后可能会有某种月份 ID..?

序列号的任何二进制表示都会起作用吗?它是一个 INT 数据类型。(还应注意,我们处理可追溯到 24 个月的历史数据,并且每个月我们都会获得下一个连续月份的数据,并且我们会删除集合中的第一个月)

我们不限于我们为转换此声明所做的工作,因此我愿意接受建议...尽量保持简短,但如果我需要添加更多信息,请告诉我 :) 谢谢。