unique-constraint相关内容

Postgres何时检查唯一约束?

我有一个列 sort_order ,上面有唯一的约束。 在Postgres 9.5上,以下SQL失败: UPDATE测试 SET sort_order = sort_order + 1; -[23505]错误:重复的键值违反了唯一约束“ test_sort_order_key” -详细信息:键(sort_order)=(2)已存在。 很明显,如果 sort_o ..
发布时间:2020-05-30 00:35:45 其他开发

PostgreSQL 8.3中具有非空且唯一约束的增量字段

我有一个带有列“ position”的表“ items”。位置具有唯一且非空的约束。为了在位置x处插入新行,我首先尝试增加后续项目的位置: 更新项目SET position =位置+ 1,其中位置> = x; 这会导致独特的约束违反: 错误:重复的键值违反了唯一约束 问题似乎是PostgreSQL执行更新的顺序。 PostgreSQL中的唯一约束 ..
发布时间:2020-05-29 23:50:18 其他开发

如何在多个列之间强制执行类似集合的唯一性?

我不确定我是否正确表达了这个问题,所以我将尝试更长的解释。我有这种表: 创建表x(a int,b int); 我想将(a,b)对与(b,a)相同,并禁止插入重复项。如果PostgreSQL的数据类型为 ,我可以这样声明表: CREATE TABLE x( ab set, UNIQUE(ab) ); 但事实并非如此,那么最好的方法是什么? ..
发布时间:2020-05-29 21:39:29 其他开发

PostgreSQL约束,可在提交时进行检查,而不是更早

是否可以在PostgreSQL中创建创建唯一索引或其他类型的约束的方法,该约束或约束将在事务COMMIT上检查而不是在一毫秒之前进行? 我需要一对(record_id,顺序)的索引,因此我确保在给定的record_id内,只有一个且不超过一个记录具有相同的顺序。问题出在哪里?嗯,问题出在我使用的网络框架处理商品的重新排序方式上。看起来,当一个项目被移动时,当它的排序顺序改变时,框架用新的排序 ..

跨多列排列的唯一约束

给出Postgres数据库中的以下三列:第一,第二,第三; 例如,如何创建一个排列唯一的约束?如果数据库中存在('foo','bar','shiz'),则('bar','shiz','foo' )将被视为非唯一。 解决方案 您可以使用hstore创建唯一索引: 使用BTREE在测试中创建唯一索引hidx(hstore(ARRAY [a,b,c],ARRAY [a,b ,C])) ..

PostgreSQL:条件唯一约束

我想添加一个约束,该约束仅在表的一部分中对列强制实施唯一性. ALTER TABLE stop ADD CONSTRAINT myc UNIQUE (col_a) WHERE (col_b is null); 上面的WHERE部分是一厢情愿. 有什么办法吗?还是我应该回到关系绘图板上? 解决方案 PostgreSQL未定义部分(即有条件的)UNIQUE约束-但是,您可以创建 ..
发布时间:2020-05-29 19:49:34 其他开发

触发错误时的回滚事务

我正在尝试检查要插入系统的房间在那个日期是否已经出租.我已经计算过与房间号和日期都匹配的行,然后回滚了事务.但是,即使我更改了代码以引发用户定义的异常,也遇到了以下错误: ERROR: cannot begin/end transactions in PL/pgSQL HINT: Use a BEGIN block with an EXCEPTION clause instead. CON ..
发布时间:2020-05-28 19:06:37 其他开发

如果在字段中找到指定值,是否拒绝PDO MySQL语句?

我已经搜索过Google,但是运气不佳,所以也许SO可以帮上忙.我正在为几个项目开发一个用户身份验证系统,并且需要确保电子邮件地址(也就是用户名)是唯一的. 我在MySQL查询中将该字段设置为唯一,但是如果提供的电子邮件与现有记录匹配,我需要一种方法来取消SQL查询并通知用户“指定的电子邮件已在使用中". 我可以在插入之前进行选择查询,但是我想知道是否有一种方法可以编写SQL查询,以便 ..
发布时间:2020-05-25 06:07:21 PHP

ORM UniqueConstraint,空值重复

我有一个实体,对3个领域有唯一的约束. 2个字段不可为空,第三个字段可为空. 我的问题,当第三个字段为空时,唯一约束不起作用,因此我可以在数据库中包含一些重复的值,例如(5,1,null)(5,1,null) 对我来说,(5,1,null)是一个唯一值,也为null. 您有什么想法吗? 这是我的ORM行: * @ORM\Table(name="table", u ..
发布时间:2020-05-22 19:04:07 其他开发

在Oracle中使用nvl创建唯一约束

当我需要将空值视为相等时,如何创建唯一约束. 对于 更改表T1添加约束T1_UN 唯一(nvl(C1,'')) 我明白了 ORA-00904: : invalid identifier nvl上的点 谢谢! 解决方案 NOT NULL似乎是一个更好的主意,但是您可以使基于函数的索引唯一: create unique index idx_t1 on ..
发布时间:2020-05-22 02:43:18 数据库

发生错误时如何在PL/SQL中查找行号,过程名称

我正在使用D2k 6i表单,并从存储的数据库(oracle9i)过程ORA-00001中获得表单上的错误:违反了唯一约束(.),但我无法找出它来自哪个过程. 有人可以帮我吗 解决方案 经过大量研究(头部撞牙和咬牙切齿),我遇到了这种模式: CREATE OR REPLACE PACKAGE BODY my_schema.package_name IS PROCEDURE foo ..
发布时间:2020-05-22 01:54:36 数据库

插入期间违反唯一约束:为什么? (甲骨文)

我正在尝试在表中创建新行.表上有两个约束-一个约束在键字段(DB_ID)上,另一个约束将值限制为ENV字段中的几个.当我执行插入操作时,我没有将键字段作为要插入的字段之一,但是却出现此错误: unique constraint (N390.PK_DB_ID) violated 以下是导致错误的SQL: insert into cmdb_db (narrative_name, ..
发布时间:2020-05-22 01:07:34 数据库

多列的唯一约束

我正在使用一个oracle表,并在四列上创建了唯一约束.约束中的这些列可以包含NULL吗? 解决方案 您可以在列中包含NULL,除非将这些列指定为NOT NULL.但是,您将只能存储一个NULL实例(除非所有列均为NULL,否则不允许两组相同的列): SQL> CREATE TABLE t (id1 NUMBER, id2 NUMBER); Table created SQL> A ..
发布时间:2020-05-22 01:00:12 数据库