问题标签 [unique-constraint]

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 投票
3 回答
14280 浏览

mysql - 我如何让 ruby​​ on rails 处理来自 MySQL 的重复记录错误

我的数据库中的多个字段都有一个唯一索引。因此,如果您尝试对重复记录调用 save,它会引发 ActiveRecord::StatementInvalid 并显示 mysql 错误。有没有办法在 Rails 中通过创建唯一约束来处理这个问题,或者在发生这种情况时让它返回相关的错误消息?

继承人的踪迹:

0 投票
2 回答
14220 浏览

mysql - 如何在 Ruby on Rails 3 中对 MySQL 表的列定义“唯一”约束?

我有一个带有一列的简单 MySQL 表:name.

我想在此列上定义一个唯一约束。

我可以:

但它只适用于应用程序级别,而不适用于数据库级别。

你有什么建议?

0 投票
19 回答
66224 浏览

entity-framework - 实体框架代码中的唯一约束

问题

是否可以使用流畅的语法或属性定义属性的唯一约束?如果不是,有什么解决方法?

我有一个带有主键的用户类,但我想确保电子邮件地址也是唯一的。如果不直接编辑数据库,这可能吗?

解决方案(基于马特的回答)

0 投票
1 回答
1305 浏览

c# - ADO.NET 数据集 - 对来自不同表的列具有唯一约束

我正在 Visual Studio 2008 中的 .NET 3.5 中用 C# 编写程序。我有一个包含两个 DataTables A 和 B 的 DataSet。表 A 中是 DataColumn Y,表 B 中是 Z 列,以及两个表中的更多列。Y 列和 Z 列都设置为唯一的、自动递增的列。

我希望 Y 和 Z 在他们两个之间也是独一无二的。如,如果表 A 已经有一行在 Y 列中有一个 3,并且我在表 B 中创建一个新行并且它想在该新行的 Z 列中放置一个 3,它将改为跳过 3并放入4。

我尝试了一些看起来应该可以工作的东西:

但是,如果我运行应用程序并获取该代码,我会在第一行收到以下错误:

System.Data.InvalidConstraintException 未处理
Message="无法从属于不同表的列创建键。"
源="系统.数据"

我在两个表中添加相同的 UniqueConstraint 的原因是,我不太确定在哪里放置它以使其处于活动状态。我宁愿不将这些表合并为一个,因为除了 Y 列和 Z 列之外,它们彼此几乎没有关系。

有谁知道这样做的任何方法?MSDN 文档没有提到多个表,而且看起来没有其他人尝试过这个。


我已经解决了这个问题。在我的程序中,我已经使用了一些外键检查来跟踪我正在处理的表。我原以为从现在开始换一种方式可能会更容易,但我决定保留我目前的技术(在需要的地方稍微扩展一下,例如在我的程序的其他组件中放置更详细的身份信息),它是结果工作得很好。

我最终所做的并不能真正解决我在这里发布的问题。我向希望在这里得到答案的 Google 员工道歉。

0 投票
7 回答
55757 浏览

python - Django Unique Together(带外键)

我有一种情况,我想使用 Meta 选项unique_together来强制执行某个规则,这是中间模型:

这是用户配置文件:

谢谢。

0 投票
3 回答
22062 浏览

hibernate - 异常:无法将数据库状态与会话同步

我有一个在 spring 和 hibernate 3.0 上开发并部署在 apache tomcat 6 上的 Web 应用程序。当我尝试将数据插入到表之一('CAR_ATTRIBUTE'表)时,我遇到了错误。

此错误只能在生产环境中重现。相同的代码在我的本地环境中工作,指向相同的数据库。我尝试添加记录器语句,发现序列生成器每次都生成相同的值,即“0”。等待您的帮助。

-- 太阳2


谢谢您的回复。是的,异常清楚地表明它违反了约束。CARS.XAK1CAR_ATTRIBUTE 是组合键,它应该是唯一的。我已经验证了所有数据(通过记录器)并且找不到可能违反此约束的数据。此外,如果它违反了这个约束,那么它不应该在我指向同一个数据库的本地环境中工作。这可以特定于服务器吗?如果可以帮助解决问题,我可以提供更多详细信息,例如表 DDL 和我要插入的数据。——桑托什

0 投票
1 回答
9794 浏览

postgresql - 我应该同时指定 INDEX 和 UNIQUE INDEX 吗?

在我的一个 PostgreSQL 表上,我有一组两个字段,它们将被定义为在表中是唯一的,但在选择数据时也会一起使用。鉴于此,我只需要定义一个 UNIQUE INDEX,还是应该在 UNIQUE INDEX 之外指定一个 INDEX?

这?

或这个?

0 投票
3 回答
58911 浏览

java - 在 Hibernate JPA2 上使用唯一约束

如何在休眠 POJO 上实现我的独特约束?假设数据库不包含任何内容。

我在@Column()注释中看到了独特的属性,但我无法让它工作?
如果我想将此约束应用于多个列怎么办?

0 投票
2 回答
1932 浏览

postgresql - 在 postgres 中对唯一违规执行删除或更新

关于 Unique_violation 异常如何更新或删除引发异常的行

表代码和插入

功能

0 投票
1 回答
2573 浏览

mysql - MySQL 多个字段的唯一索引

我们的数据库中有一种特殊的表,它本身存储其更改的历史。所谓的“自存档”表:

它存储我们订户的“覆盖范围”。字段“当前”指示这是当前/原始记录(“C”)还是历史记录(“H”)。

对于给定的订阅者,我们只能有一个当前的“C”覆盖,但我们不能创建一个包含 2 个字段(*subscriber_id 和 current*)的唯一索引,因为对于任何给定的“C”记录,可能有任意数量的“H " 记录 - 变更历史。

所以索引应该只对当前 == 'C'和任何subscriber_id 是唯一的。

这可以在 Oracle DB 中使用“物化视图”之类的东西来完成:我们可以创建一个物化视图,它只包含current = 'C' 的记录,并使用以下两个字段创建一个唯一索引:*subscriber_id, current*。

问题是:如何在 MySQL 中做到这一点?