2011-01-18 76 views
4

我試圖創建代碼字段唯一索引:無法創建唯一索引 - 號稱有重複的值,但它不會

$ 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

回答

10

此:

HAVING COUNT(*) > 2 

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

HAVING COUNT(*) > 1 

...查找帶有2個重複項的記錄。

+0

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

相關問題