在添加唯一约束之前,是否有办法强制现有行在列上唯一?我将此约束添加到我的数据库中:
CREATE UNIQUE INDEX customfields_name_org_id_key
ON CustomFields(name, org_id)
WHERE deleted IS false;
但是,首先要查找所有不满足此约束的情况,然后在其中一个行的名称中添加1(如果两个以上的列发生冲突,则递归地添加更多的1)。是否可以在POstgresql中做到这一点?
答案 0 :(得分:0)
您只需检查:
select name, org_id, count(*)
from customfields
where not deleted
group by name, org_id
having count(*) > 1