У меня есть таблица, которая создана таким образом:
--
-- Table: #__content
--
CREATE TABLE "jos_content" (
"id" serial NOT NULL,
"asset_id" bigint DEFAULT 0 NOT NULL,
...
"xreference" varchar(50) DEFAULT '' NOT NULL,
PRIMARY KEY ("id")
);
Позже некоторые строки вставляются с указанием идентификатора:
INSERT INTO "jos_content" VALUES (1,36,'About',...)
На более позднем этапе некоторые записи вставляются без идентификатора , и они завершаться с ошибкой:
Error: duplicate key value violates unique constraint
.
Видимо, идентификатор был определен как последовательность:
Каждая неудачная вставка увеличивает указатель в последовательности до тех пор, пока он не увеличится до значения, которого больше не существует, и запросы будут выполнены успешно.
SELECT nextval('jos_content_id_seq'::regclass)
Что не так с определением таблицы? Какой умный способ исправить это?