Не удалось создать уникальный индекс - утверждает, что имеют повторяющиеся значения, но это не так - PullRequest
4 голосов
/ 19 января 2011

Я пытаюсь создать уникальный индекс для поля кода:

$ 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

1 Ответ

10 голосов
/ 19 января 2011

Это:

HAVING COUNT(*) > 2

... означает, что должно быть 3+ дубликата.Вы хотите использовать:

HAVING COUNT(*) > 1

... для поиска записей с 2+ дубликатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...