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

mysql - Hibernate 的 hbm2ddl 过度创建唯一索引的问题

我遇到了 Hibernate 的 hbm2ddl 和 MySQL 的一个严重问题:Hibernate 系统地为我的 OneToMany 关联的一个字段创建了一个唯一索引,如下所示:

屏幕截图

请注意,选中UQ框以查找day_to_time_slots没有任何意义的字段...

这是Advertisement实体中的关系:

这是DayToTimeSlot实体:

谁能告诉我如何防止这种行为?

0 投票
0 回答
111 浏览

mysql - MYSQL 和唯一键

非常初学者的问题:

我将用户注册数据写入 mysql 表,其中包含以下列:id、name、password、email....

为了防止重复电子邮件,我在“电子邮件”上设置了一个唯一索引,并正在检查 php 代码中的错误 23000,即重复电子邮件。到目前为止这工作正常,但是如果我在 phpmyadmin 中删除一个用户(即用户表中的一行)并尝试使用相同的电子邮件地址重新注册,它会给我 23000 错误(“重复电子邮件”)即使这个电子邮件地址已被删除。

为了“刷新”电子邮件上的唯一索引,我是否需要做任何特别的事情(刷新表?...)?

0 投票
1 回答
4868 浏览

mysql - MySQL处理重复键错误插入具有多个唯一索引的表;不是多列唯一索引

如何从存储过程中找到哪个唯一索引失败?

我创建了一个具有单列主键和三个单列唯一索引的表:

我创建了一个存储过程来处理错误“1062”:“密钥 %d 的重复条目 %s”:

我已经用不同的数据调用了存储过程 5 次以返回各种结果:

第一次插入尝试成功

第二次插入尝试失败,因为 col1 不是唯一的

第三次插入尝试失败,因为 col2 不是唯一的

第 4 次插入尝试失败,因为 col3 不是唯一的

第 5 次插入尝试成功

我需要在存储过程中做什么才能从存储过程中找到哪个唯一索引失败?

提前致谢。

0 投票
1 回答
958 浏览

postgresql - 多个连接上具有 NULL 值的多列唯​​一索引的行为

我在 postgresql 中有一个多列唯一索引。有时这些列值之一将为 NULL,我希望唯一索引将 NULL 视为另一个值。因此不允许这两行:

在 psql 做简单的实验,这正是我看到的行为。

但是我有一个压力测试,我使用 20 个线程进行 20 个并发插入。在这里,Postgres 允许插入相同的行。

发生这种情况有什么原因吗?也许我的 psql 实验和我的测试实验之间还有另一个区别。

0 投票
1 回答
1733 浏览

sql-server - 身份插入的 SQL 算术溢出

我在将行 ID 设置为 TINYINT 数据类型的查找表中插入值时出现算术溢出错误。这不是唯一记录数超过 255 个值的情况。这有点不寻常,并且在此设置的第一次测试期间没有发生。

下面代码的生产版本实际上只有 66 个唯一值,但随着时间的推移,可能会添加新值(缓慢且数量非常少)...... 255 个可用插槽对于这个生命周期来说应该绰绰有余分析过程。

我最初的想法是,这可能是由于缓存计划识别分层源表具有超过 255 个值(实际上有 1028 个),并评估这可能超出目标表的容量。然而,我已经测试过这是不正确的。

这似乎不是查询计划缓存问题 - 如果这是真的,我应该会看到方法 1 重新测试的算术错误。

我特别好奇为什么会抛出异常。我可以理解,在方法 1 中测试了所有 100 个唯一值......因此可以想象,查询代理在第二次插入尝试后看到了 200 条记录的潜力;我不明白为什么它会在第三次重复后看到 300 条记录的潜力——第二次尝试导致 0 行,所以最多可能有 200 个唯一值。

有人可以解释一下吗?

0 投票
1 回答
1181 浏览

ef-code-first - 表 Fluent Api / Code First 中的唯一字段

我一直在寻找一种方法来制作,例如在数据库中使用Fluent API/的用户名是唯一的Code First。这甚至可以通过这些路线中的任何一条实现吗?

因为我找不到任何说明如何完成的教程或示例。

0 投票
1 回答
47 浏览

mysql - MySQL 多列唯一索引,不考虑列

简单表结构:id_1 int, id_2 int,

这是一个创建用户之间关系的简单关系表。id_1 和 id_2 将始终是存在于另一个表中的 user_id。我正在尝试创建一个索引,使得该表中的任何一对 user_id 都不能存在超过一次,无论哪个 id 在哪一列。例如给定用户 id:1 和 2,如果我们有记录:1 ,2

然后记录: 2,1 应该被认为是重复的。

我对唯一索引的所有尝试都不是以这种方式操作的,因为它们是特定于列的。有没有办法构造这个或者必须用存储过程或类似的东西来完成?

0 投票
1 回答
4942 浏览

mysql - “异常:SQLSTATE [23000]:完整性约束违规:1062 重复条目”错误,其中索引被截断

我有时会在我的应用程序日志中收到以下错误以插入 MySQL:

上面的问题是被索引的值被截断为 64 个字符长,但实际列大小为 255 个字符长。该值的一个示例是:4d9acbacc6ed7dc2733025e4b8af7be4940fe5b70338789b34caea27695860fa2b497f6cd34851657c9d3e8e8e88713d80da1a22d8654cf98622e9af3f29481d

表定义如下:

如何强制 MySQL 使用完整值作为索引?

0 投票
1 回答
173 浏览

c# - 从具有唯一组合的方法中获取内容(不重复)

我有 5 个文本文件,其中包含一些元素。

  1. A(有 1000 个元素)
  2. B(有 7 个元素)
  3. C(有 3 个元素)
  4. D(有 2 个元素)
  5. E(有 1 个元素)

A中的内容示例:

(还有更多,大约 18k,但现在我希望只获得第 1000 个。)

这是在文本文件中获取内容的方法之一。

其他方法同上。只需将“A”更改为其他名称。

现在我想编写另一种方法来获取组合文本文件中所有元素的元素。

比如UniqueCombination(7),我需要得到7个唯一的组合。

A(0) B(0) C(0) D(0) E(0)

A(0) B(0) C(0) D(1) E(0)

A(0) B(0) C(1) D(0) E(0)

A(0) B(0) C(1) D(1) E(0)

A(0) B(0) C(2) D(0) E(0)

A(0) B(0) C(2) D(1) E(0)

A(0) B(3) C(0) D(0) E(0)

(以上是组合的例子,因为E只有1个元素,所以总是返回第一个位置元素。)

但是,对于这种情况,我想获得数千个,可能多达 5 位(20,000)个组合。怎么做?我已经为随机索引编写了另一种方法。但对于这种情况,我不知道。

(ps元素的顺序无关紧要,只是保证每个组合都是唯一的)

0 投票
0 回答
45 浏览

mysql - 如果在使用 group by 选择创建表时添加唯一索引会更慢吗?

我正在使用以下选择查询创建一个表:

如果我aVarchar在表定义中添加唯一索引会更慢mytable吗?我认为 mysql 应该足够聪明,因为group by 2.