强制现有的行是唯一的

时间:2018-09-21 19:14:51

标签: sql postgresql constraints unique-constraint

在添加唯一约束之前,是否有办法强制现有行在列上唯一?我将此约束添加到我的数据库中:

CREATE UNIQUE INDEX customfields_name_org_id_key 
ON CustomFields(name, org_id) 
WHERE deleted IS false;

但是,首先要查找所有不满足此约束的情况,然后在其中一个行的名称中添加1(如果两个以上的列发生冲突,则递归地添加更多的1)。是否可以在POstgresql中做到这一点?

1 个答案:

答案 0 :(得分:0)

您只需检查:

select name, org_id, count(*)
from customfields
where not deleted
group by name, org_id
having count(*) > 1