Eu tenho uma tabela que é criada assim:
--
-- 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")
);
Mais tarde, algumas linhas são inseridas especificando o id:
INSERT INTO "jos_content" VALUES (1,36,'About',...)
Posteriormente alguns registros são inseridos sem id e falham com o erro:
Error: duplicate key value violates unique constraint
.
Aparentemente, o id foi definido como uma sequência:
Cada inserção com falha aumenta o ponteiro na sequência até que ele seja incrementado para um valor que não existe mais e as consultas sejam bem-sucedidas.
SELECT nextval('jos_content_id_seq'::regclass)
O que há de errado com a definição da tabela? Qual é a maneira inteligente de corrigir isso?