我在
postgresql数据库中有一堆数据.我认为两个键应该组成一个独特的对,
所以想在数据库中强制执行.我试试
所以想在数据库中强制执行.我试试
create unique index key1_key2_idx on table(key1,key2)
但那失败了,告诉我我有重复的条目.@H_404_5@
假设您只想删除重复项并保留原件,则接受的答案是不准确的 – 它也会删除您的原件,并且只保留从一开始就有一个条目的记录.这适用于9.x:
SELECT * FROM tblname WHERE ctid IN (SELECT ctid FROM (SELECT ctid,ROW_NUMBER() OVER (partition BY col1,col2,col3 ORDER BY ctid) AS rnum FROM tblname) t WHERE t.rnum > 1);
https://wiki.postgresql.org/wiki/Deleting_duplicates@H_404_5@