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

sql - 添加唯一索引。SQLite3

我需要向现有表添加唯一字段索引。我做了这一行:

表和字段已经存在。错误是:

查询错误:“唯一”附近:语法错误无法执行语句

我错过了什么?它对 SQLite3 有什么特殊要求吗?

0 投票
3 回答
2462 浏览

javascript - 实例化对象时设置唯一ID(使用构造函数)

我有一个关于我的 Javascript 代码需要解决的问题。当实例化对象(在这种情况下添加新成员)时,我希望成员获得唯一的 id。下面是我的代码的简化版本,为您提供我想要的图片。做这个的最好方式是什么?

0 投票
3 回答
1856 浏览

mysql - 修复表中的重复条目

我刚刚发现我的生产服务器上的一个表(包含大约 35K 记录)在具有 AUTO_INCREMENT 的 INT(11) 列中包含 588 个重复条目。该列上缺少 UNIQUE 键,因此这可能是原因。

关于如何为所有重复条目提供唯一 ID,然后将 UNIQUE 键添加到列中的任何想法,这样就不会再发生这种情况?

表架构:

0 投票
2 回答
2130 浏览

mysql - MySQL:唯一约束多列性能优化

我看到大量关于多个问题的独特约束的问题,但没有一个与我特别寻找的内容相匹配。如果这是一个副本,我很抱歉。

我有一个表就是:tableA_id tableB_id

我的主键是两个表的唯一约束,并且我在两个列上都有一个索引。两者也是其受人尊敬的表的主键。

如果 tableA 可能有 10,000,000 行,而 table B 可能有 2,000,000 行,则 TableB 更有可能处于此约束中的次数要少得多。可悲的是,当我将我的唯一约束设置为将 TableB 作为第一列时是否更优化,因为要搜索的内容更少,TableA(如果是这样,为什么),或者它没有任何区别,因为它没有先搜索一个另一个,而是一个一个地看着两者。

提前致谢

0 投票
1 回答
31389 浏览

android - 如何在 Sqlite 上将列设置为唯一索引器

我有 3 列(_id、column1、column2)_id 列已设置为自动增量

在数据库中有一些重复的记录,所以我想通过将 column1 设置为唯一索引器来防止重复记录。如何在 sqlite 上将列设置为唯一索引器?或者如何防止重复记录?

0 投票
2 回答
3241 浏览

mongodb - MongoDB唯一索引不起作用

我有一部分简单的代码,由于唯一索引约束而不得不失败。但是这两个对象都被添加到数据库中并且可以被查询,尽管有唯一的索引。

两个对象都被保存并获得不同的_id。

更新。 我发现,怎么了。保存到数据库后,两个对象都有自己的 id,但实际上第二个对象没有保存(即使通过给定的 id 也无法查询)。

感谢araqnid,这给出了正确的答案。不幸的是,我没有足够的评分来投票。

0 投票
3 回答
2005 浏览

mysql - INSERT INTO 具有 UNIQUE INDEX 两列的表

我有一个简单的 tag_map 表

我添加UNIQUE INDEX以避免重复对与帖子关联的标签。现在,当我尝试将新条目添加为

我会收到一个错误

但是当我SELECTWHERE tag_map_id='16777215'; 这属于不同的标签和帖子。

我哪里错了?

0 投票
1 回答
1554 浏览

ruby-on-rails - Rails:如何在任意索引上使用 find 方法

我创建了一个具有字符串作为唯一标识符的模型。我创建了一个迁移以在该字符串上添加一个索引并将其设置为唯一。例如,我如何通过将其唯一标识符字符串传递给 find 方法来访问数据库条目

目前,我得到的只是一个 ActiveRecord::RecordNotFound 异常......

找不到 id=abc 的对象

...当我尝试访问Object.find('abc')

where方法是无可替代的,因为这给了我一个关系。

0 投票
1 回答
5734 浏览

postgresql - PostgreSQL 如何强制执行 UNIQUE 约束/它使用什么类型的索引?

在阅读了关于索引唯一性的文档作为实现细节之后,我一直试图理清 Postgres 中唯一性和索引之间的关系:

向表添加唯一约束的首选方法是 ALTER TABLE ... ADD CONSTRAINT。使用索引来强制执行唯一约束可以被认为是不应该直接访问的实现细节。然而,应该注意的是,没有必要在唯一列上手动创建索引。这样做只会复制自动创建的索引。

因此,按照他们的说法,我将仅将文档声明为唯一并使用隐式索引 - 或 - 创建索引而不假设值是唯一的。这是一个错误吗? 

我将从独特的索引中获得什么样的索引?鉴于只有 btree 将接受唯一约束并且 unique 隐式创建索引,UNIQUE 创建 btree 索引是真的吗?我不想无意中在哈希索引上运行范围。 

0 投票
2 回答
417 浏览

mysql - 仅允许/要求具有公共 FK 的一条记录具有“主要”标志

首先,如果这是一个骗局,我深表歉意——我怀疑它可能是,但我找不到它。

假设我有一张公司表:

...以及联系人表:

是否可以以这样一种方式设置contacts表,即它要求一个且只有一个记录is_primary为每个 common 设置标志company_id

因此,如果我尝试这样做:

...查询将失败,因为Tom( id = 1) 已被标记为 的主要联系人company_id = 1。或者更好的是,是否可以构造一个触发器以使查询成功,但Tom' 的is_primary标志会被相同的操作清除?

我不太在意检查表中是否company_id存在companies,我的 PHP 代码在我到达这个阶段之前已经执行了这个检查(尽管如果有办法在同一个操作中做到这一点,那会很好,我想) .

当我最初想到这一点时,我认为“这很容易,我只需在company_idis_primary列中添加一个唯一索引”,但显然这不起作用,因为它会将我限制为一个主要联系人和一个非主要联系人 - 任何尝试添加第三个联系人将失败。但我不禁觉得有一种方法可以配置唯一索引,为我提供所需的最低功能 - 拒绝添加第二个主要联系人的尝试,或拒绝离开没有主要联系人的公司的尝试。

我知道我可以在表中添加一个primary_contact字段,并在companies表中添加一个 FK,contacts但感觉很乱。我不喜欢两张桌子都对另一张桌子有 FK 的想法——在我看来,一张桌子应该依赖另一张桌子,而不是两张桌子相互依赖。我想我只是认为随着时间的推移,出现问题的可能性会更大。

总结一下:

  • 如何限制联系人表,以便只有一个给定的记录设置company_idis_primary标志?
  • 有人对两张彼此有 FK 的桌子是否是个好主意/坏主意有任何想法吗?