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

doctrine - 在使用 Doctrine 插入之前检查实体是否已存在于数据库中

每当我插入数据库中已存在的实体时,我都会收到错误消息,因为其中一个字段 ( email) 存在唯一约束。

所以我想检查它是否已经存在;如果没有,我插入它。

我的代码如下所示:

有没有更简单的方法来做到这一点?

0 投票
3 回答
10957 浏览

oracle - 发生错误时如何在 PL/SQL 中找出行号、过程名称

我正在使用 D2k 6i 表单并从存储数据库(oracle9i)过程 ORA-00001:违反唯一约束(。)的表单上获取错误,但我无法追踪它来自哪个过程。有人可以帮我解决这个问题吗

0 投票
4 回答
150 浏览

sql-server - SQL Server:“最独特”的索引

在一个表中,我想确保在五列键上只存在唯一的值:

我只希望在EventAction 为时在行之间应用唯一约束INSERT

可能的?

0 投票
1 回答
96 浏览

ruby-on-rails - 为什么在尝试处理阵列时出现活动记录错误?

我的用户模型中有以下关联:

我的 user_users 表中有以下唯一性约束:

在我的代码中,我正在检索用户的朋友 --> friends = user.friends。朋友是一个数组。

我有一个场景,我想将所有这些朋友的用户添加到朋友数组中。前任:

但是,我收到以下错误:

是什么赋予了?

0 投票
2 回答
15116 浏览

java - 在 JPA 2.0 中捕获约束违规

考虑以下实体类,例如与 EclipseLink 2.0.2 一起使用 - 其中link属性不是主键,但仍然是唯一的。

当我为属性插入具有重复值的记录时link,EclipseLink 不会抛出 a EntityExistsException,而是抛出 a DatabaseException,并显示消息说明违反了唯一约束。

这似乎不是很有用,因为没有一种简单的、独立于数据库的方法来捕获这个异常。处理此问题的建议方法是什么?

我考虑过的几件事是:

  • 检查错误代码DatabaseException- 我担心这个错误代码是数据库的本机错误代码;
  • Profile预先检查具有特定值的 a 的存在link- 这显然会导致大量多余的查询。
0 投票
6 回答
9850 浏览

mysql - JPA 中未创建唯一约束

我创建了以下实体 bean,并将两列指定为唯一的。现在我的问题是该表是在没有唯一约束的情况下创建的,并且日志中没有错误。有人有想法吗?

0 投票
5 回答
208 浏览

database - 超过 10 列的唯一约束

我有一个时间序列仿真模型,它有 10 多个输入变量。不同的模拟实例的数量将超过 100 万个,每个模拟实例每天都会生成一些输出行。

为了将模拟结果保存在关系数据库中,我设计了这样的表。

创建表 SimulationModel (

simul_id 整数主键,

input0 字符串/数字,

input1 字符串/数字,

...)

创建表 SimulationOutput (

dt 日期时间主键,

simul_id 整数主键,

输出0数字,

...)

为了使每个模型都独一无二,我正在考虑以下一些方法。

  1. 对 SimulationModel 表的所有输入列设置唯一约束

  2. 重新设计 SimulationModel 表,将输入列分组为 2~3 列,并对这些分组列设置唯一约束。(通过制作像“input0_input1_input2”这样的长字符串值)

  3. 忘记服务器端约束并在应用程序端完成工作。

您如何看待这些选项?

对 10 多列数百万行使用唯一索引没有问题吗?

有其他方法可以推荐吗?

(我可能会使用 postgresql)

0 投票
1 回答
4292 浏览

java - 如何正确处理 EntityExistsException?

我有两个实体:Question 和 FavoritesCounter。首次将问题添加到收藏夹时,应创建 FavoritesCounter。

考虑两个用户同时尝试将问题添加到收藏夹的用例 - 这将导致EntityExistsException调用entityManager.persist(counter)第二个用户的时间。

但是下面的代码不起作用,因为当EntityExistsException被抛出时,容器将事务标记为仅回滚并尝试返回getFavoritesCounter(question)失败javax.resource.ResourceException: Transaction is not active

问题

收藏计数器

之后返回已创建实体的最佳方法是什么EntityExistsException

0 投票
12 回答
288027 浏览

java - Java中的@UniqueConstraint注解

我有一个Java bean。现在,我想确保该字段应该是唯一的。

我正在使用以下代码:

但是我遇到了一些错误:

使用唯一约束的正确方法是什么?

注意:我正在使用播放框架。

0 投票
2 回答
1133 浏览

.net - 带有 AutoIncrement 列的 DataTable.Rows.Add 上的 ConstraintException

我有一些带有 ID 列的 DataTables,在 MySQL 服务器端和 ADO.NET 模式端(从 XML 模式文件加载)都启用了 AutoIncrement。我不想在插入行时关心这些 ID,因为它们的唯一用途是拥有表的主键——没有外键引用。但是,当要添加新行时,DataTable 将已经包含行,即 ID 从 1 开始的行已经驻留在 DataTable 中。

ID 列的默认 AutoIncrementSeed 值为 -1,AutoIncrementStep 值为 1(仅保留 Visual Studio 提供的默认值)。如果我只想一次插入两个新行,一切似乎都很好,因为当使用 dataTable.NewRow() 创建时,它们会得到 ID -1 和 0。但如果我想添加第三行,它会得到 ID 1 由 NewRow() 分配。随后,当我想使用 dataTable.Rows.Add(...) 插入新行时会引发 ConstraintException,因为已经有 ID = 1 的行。

我想禁用 ADO.NET 架构的 AutoIncrement 东西不是解决方案,因为那样我仍然必须确保自己在使用 .Rows.Add() 添加行之前 ID 是唯一的

这个问题的简单/优雅的解决方案是什么?现在我无法想象这是一个非常罕见的任务。

谢谢!