понедельник, 12 апреля 2010 г.

duplicate key value violates unique constraint

PGError: ERROR: duplicate key value violates unique constraint "lastsearches_pkey"

Фиксим выполнив
select setval('lastsearches_id_seq', (select max(id) + 1 from lastsearches));
И все - заработало.
Еще один вариант REINDEX INDEX lastsearches_pkey;

2 комментария:

Анонимный комментирует...

Обычно такое случается когда поле, для которого установлен sequence, заполняется в обход этого самого sequence. Например мы вручную заполняем id, sequence ничего об этом не знает и когда его вызывают (при добавлении новой записи) делает инкрементацию без учета наших значений. Это приводит к дублированию id'а. Поэтому приходится переинициализировать sequence (например такой командой, которая прописана в посте).

Slava Semushin комментирует...

Спасибо!