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

python - Django:如何从模型中验证 unique_together

我有以下内容:

如果我随后在同一帐户上创建一个与另一个用户名相同的新 AccountAdmin,而不是它给我一个错误以显示在模板中,它会因 IntegrityError 而中断,并且页面会死掉。我希望在我看来,我可以去:

我该如何克服这个问题。是否有第二种is_valid()方法可以检查数据库是否违反unique_together = (('Account', 'is_master'), ('Account', 'username'),)零件?

我不希望在我看来必须捕获 IntegrityError。那是域逻辑与表示逻辑的混合。它违反了 DRY,因为如果我在 2 页上显示相同的表格,我将不得不重复相同的块。它也违反了 DRY,因为如果我对同一事物有两种形式,我必须写相同的 except: 再次。

0 投票
1 回答
2043 浏览

entity-framework - 如何向 ADO.NET 实体添加约束?

我知道如何将一组字段标记为 ADO.NET 实体中的主键,但我还没有找到一种方法来声明唯一约束或检查约束。

设计器或框架上是否缺少此功能?

0 投票
6 回答
4466 浏览

sql-server - 带有尾随空格作为 SQL Server 2008 中的主键的 Varchar

是否可以将 varchar 列作为主键,其值类似于 'a' 和 'a',在 MS SQL Server 2008 中总是给出此错误“违反主键约束”。在 Oracle 中不会给出任何错误。顺便说一句,我没有以这种方式实现,我只是想将数据从 oracle 迁移到 sql server。

问候

0 投票
3 回答
174 浏览

mysql - MySQL:用户“视图”的表结构

我有一个问题,我有反对意见,希望能提供更多意见。

我的网站有用户,每个用户都有一个 user_id。这些用户可以查看产品,我需要跟踪查看特定产品的用户的独特实例。要在单独的视图表中记录视图,我目前有两个选项:

选项1:

view_id (INT,PK) | user_id (INT,FK) | product_id (INT,FK) | 查看日期

...并在两个中间列上创建唯一约束,以便使用 ON DUPLICATE KEY 轻松更新。如果相同的视图已经存在,我只需更新 view_date。如果没有,我写一个新行。

选项 2:

user_product (VARCHAR20,PK) | 查看日期

... 将两个 id 合并成一个中间有分隔符的 VARCHAR,并使用主键列以与上面相同的方式使用 ON DUPLICATE KEY 轻松更新。

该结构最多可容纳约。百万独特的观点。关于哪个选项可能更好或更差的任何想法,为什么?提前非常感谢。

编辑: 感谢您的回答,似乎有一个共识。向同一侧倾斜,但只需要保证。

0 投票
4 回答
17826 浏览

hibernate - Hibernate - 使用 all-delete-orphan 清除集合然后添加到它会导致 ConstraintViolationException

我有这些实体

有了这个映射(对不起,没有注释,我是老式的):

我对 2 列也有唯一约束:local_identifierparent_id(不是每列的唯一约束,而是包含两者的单个唯一约束,例如,不允许有 2 行具有相同父级和相同 localIdentifier)

而使用它们的这段代码:

现在,出于某种原因,Hibernate 不会按照调用顺序执行操作。它不会clear()在 (insert) 之前执行 (delete),add()反之亦然,它首先尝试插入,得到一个ConstraintViolationException

session.flush()我知道在 之后添加一点bars.clear();,可以解决这个问题,但在这种情况下,我无法以非丑陋的方式访问会话。

那么flush是唯一的解决方案吗?还是有尊重动作顺序的休眠版本?

更新: 顺便说一句,取消引用集合将导致来自https://www.hibernate.org/117.html#A3的 HibernateException :

我得到 HibernateException: Don't dereference a collection with cascade="all-delete-orphan"如果您使用 cascade="all-delete-orphan" 集合加载对象然后删除对集合的引用,则会发生这种情况。不要替换此集合,请使用 clear() 以便孤儿删除算法可以检测到您的更改。

0 投票
2 回答
2203 浏览

oracle10g - 提交时获取 ORA-00001(违反唯一约束)?

我们在批处理作业中收到 ORA-00001(违反唯一约束)。但是,错误发生在发出 COMMIT 时,而不是在插入有问题的记录时。

问题:

  • 为什么在 COMMIT 会检查唯一约束?(我们可以使用一些设置以便在插入时进行检查吗?)
  • 我们如何找出导致违反唯一约束的违规 SQL/记录?

任何帮助表示赞赏!


附加信息/问题:

“违规”约束标记为 IMMEDIATE 和 NON-DEFERRABLE。这可以在事务中覆盖吗?

0 投票
3 回答
124 浏览

sql-server - 向字段添加文本以使其唯一

我正在使用 SQL Server 2000,我有一种情况,我将数据从一个表复制到另一个表,目标数据表要求每个 Name 行都是唯一的。这是我的问题的一个简单示例

我想做的就是把它变成这个

Name 列是一个 varchar(40),关于如何处理它的任何想法,我有 2561 行有重复项,所以手工操作不是一种选择。

关于从哪里开始的任何想法?

0 投票
8 回答
52455 浏览

java - 确保元素唯一性的队列?

我正在寻找 java.util.Queue 的实现或谷歌集合中的东西,它们的行为类似于队列,但还要确保队列的每个元素都是唯一的。(所有进一步的插入都没有效果)

这是可能的,还是我必须手动完成?

现在我使用的是一个队列,一个 LinkedList 实现,我在插入之前检查了唯一性。(我使用侧地图来执行此操作,在队列之前/之后从侧地图中添加/删除元素)。我不太喜欢它。

欢迎任何意见。如果它不在 java.util 包中,那么也许这是一个坏主意?

0 投票
2 回答
9839 浏览

sql - 从 Oracle DB 中查找幽灵约束

我在表中有一个约束

两周前,我修改了表,添加了一些列,删除了约束“PK_USERSAPPLICATIONS”并添加了代理键。我可以在 Oracle SQL Developer 中看到约束 PK_USERSAPPLICATIONS 不再存在。

无论如何,当我尝试添加两个具有相同用户 ID/应用程序名称组合的条目时,我收到一个错误

当我执行语句

我得到零行。怎么可能?Oracle 不应该对约束 PK_USERSAPPLICATIONS 有任何了解,因为它已经在几周前被删除,而且我在数据库中也看不到它。

0 投票
2 回答
9121 浏览

java - hibernate 列唯一性问题

我仍在学习hibernate/hql,我有一个问题,一半是最佳实践问题/一半是健全性检查。

假设我有一个 A 类:

我想强制每个被保存的 A 实例都有一个唯一的名称(因此是 @Column 注释),但我也希望能够处理已经保存了一个具有该名称的 A 实例的情况。我看到了两种方法:

1)我可以捕获在 session.saveOrUpdate() 调用期间可能引发的 org.hibernate.exception.ConstraintViolationException 并尝试处理它。

2) 在调用 session.saveOrUpdate() 之前,我可以在 DAO 中查询已经具有该名称的 A 的现有实例。

现在我倾向于方法 2,因为在方法 1 中我不知道如何以编程方式找出违反了哪个约束(A 中有几个其他唯一成员)。现在我的 DAO.save() 代码大致如下所示:

我是否以正确的方式解决这个问题?hibernate 可以以编程方式(即不是作为错误字符串)告诉我哪个值违反了唯一性约束吗?通过将查询与提交分开,我是否会引发线程安全错误,或者我是否安全?这通常是怎么做的?

谢谢!