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

mysql - MySQL 使列的组合唯一

我有一个表格,用于存储用户对网站上图像的评论。该表由四列构成,row_id(主键)、image_id、user_id 和评论。我想要做的是确保用户每张图片只能留下一条评论。我是否只是在两列上创建唯一索引?

这个想法是让以下查询工作:

gotchya (gotme?) 是表是 innoDB,因为它预计会变得非常大。尽管存在主键,但这是可行的方法吗?

0 投票
1 回答
575 浏览

mysql - 多个唯一列,但只有唯一组合

我遇到了 MySQL 唯一索引的问题。我想做的是有这样的事情:

可以有相同用户 ID 的多个实例,以及组 ID 的多个实例,但允许两者的唯一组合。我将它与ON DUPLICATE KEY UPDATEMySQL 查询一起使用,我想知道我需要对表上的索引做什么。目前,我有这个:

但是...a)这足够了吗,b)我做对了得到我正在寻找的东西吗?

谢谢你的帮助

詹姆士

0 投票
3 回答
11036 浏览

mysql - 有没有办法在 Mysql 5.1.x 中使 UNIQUE 索引不区分大小写?

如果是这样 - 此表中必须更改什么?

0 投票
2 回答
1681 浏览

mysql - MySQL唯一复合约束不起作用

我创建了一个这样的唯一索引:

但我仍然可以添加重复的项目,为什么这不起作用?

笔记:

表本身也有一些列在这里没有包含,而warehouse_id是外键,不过这些东西应该没关系吧?

谢谢!

@cularis:这是成功添加重复项的示例:

编辑:

根据需要添加更多信息:

0 投票
1 回答
370 浏览

sql-server - 从 SqlException 消息中获取唯一索引名称的智能方法?

是否有任何智能/最佳方法可以从SqlException消息中获取唯一索引名称?如下所示:

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

我需要得到IX_Partner_SerialId而不必操作异常消息字符串?类似于异常对象中的变量?

0 投票
1 回答
580 浏览

nhibernate - NHibernate 删除并添加到 ParentClass 的 ChildCollection

我有以下问题。

我有一个包含子对象集合的父类。

这些类使用 nhibernate 映射到列 tblChild.colName 具有唯一索引的数据库。

我的问题:由于唯一索引,以下代码引发异常:

异常的原因是NHibernate先插入child4,然后再移除child1。为什么 NHibernate 会这样做?有人解释一下,可以帮我解决这个问题吗?

0 投票
5 回答
2975 浏览

sql - 已有数据库表中的唯一索引

我正在尝试在 SQL Server 2008 中的一个数据库表上添加一个新的唯一索引。这是一个现有表,我想要唯一索引的列已经有一些重复值。

我可以为该列设置唯一索引吗?如果是这样,怎么做?

0 投票
2 回答
296 浏览

php - 在 PHP 中从字符串创建唯一整数

我正在使用向我返回项目的 API,然后将这些项目存储在 MySQL 数据库中。但是,API 不会为每个项目返回唯一的 ID,因此我冒着存储相同项目两次的风险,除非我检查重复项。

我认为防止重复的最有效方法是在 MySQL 中使用唯一索引。但是,由于 MySQL 不能为字符串提供唯一索引,因此我需要将其中一个字符串(可能是 URL)转换为整数以存储在唯一索引列中。我的假设是否正确?我将如何使用 PHP 来完成此任务?

谢谢你。

0 投票
1 回答
5076 浏览

foreign-keys - Symfony2 OneToOne 关系成为唯一索引还是外键?

我在 Symfony2 实体关系方面迈出了第一步。我有一个实体装置,每个装置都有一个仪表和一个监视器。

这转化为单向关系,我将其定义为:

每台显示器只能分配给一个安装。每个仪表可以分配给多个安装。

当我更新我的数据库(应用程序/控制台原则:模式:更新 --force)时,有两个结果。
在监视器的情况下:
一切正常,模式将使用以“UNIQ_”为前缀的键名进行更新。

如果是仪表:我收到以下错误

当我在这个错误发生后查看表结构时,我找不到提到的约束,但我确实找到了 FK_43D26968860BE41D,即相同,但前缀为“FK”。

在安装表中,我现在列出了这些:

所以一个说“唯一=是”,另一个说“唯一=否”。

解决我的问题:
如何确定它是 UNIQ 索引还是 FK 索引?我假设 Doctrine 看到当前每个 monitorid 在安装表中都是唯一的,但每个meterid 在安装表中出现多次。
因此它与UNIQ一起用于第一个,FK用于后者。但我能以某种方式控制它吗?

0 投票
1 回答
1758 浏览

mysql - mysql utf8 编码和唯一键

我正在从用户表中导入数据(来自许多站点的许多用户):
myisam default collation latin1_swedish....

将该数据导入到innodb table utf8_general

我在username,site_id组合上放置了一个唯一键,但这在同一站点的 2 个用户上失败:

如果我运行:

直接在使用 utf8 编码的目标数据库上,我得到'yep'.

任何有关解决此问题的提示都非常受欢迎。我的印象是 utf8 会将这些视为不同的字符,但似乎并非如此。