无法创建唯一索引 - 号称有重复的值,但它不会

问题描述:

我试图创建代码字段唯一索引:无法创建唯一索引 - 号称有重复的值,但它不会

$ CREATE UNIQUE INDEX "one_code_per_person" on "core_person"("code") WHERE "code" IS NOT NULL; 
ERROR: could not create unique index "one_code_per_person" 
DETAIL: Table contains duplicated values. 

它说有重复的值,但:

$ select code, count(*) from core_person group by code having count(*)>2; 
code | count 
-----------+------- 
(0 rows) 
  • 这证明没有。

WTF?

+3

其实count(*)> 1是你需要测试的条件。 – 2011-01-18 21:14:05

此:

HAVING COUNT(*) > 2 

...意味着需要有3+重复。您要使用:

HAVING COUNT(*) > 1 

...查找带有2个重复项的记录。

+0

我真的很愚蠢是不可思议的 - 谢谢:) – michuk 2011-01-18 21:22:52