J'ai une table qui est créée de cette façon:
--
-- 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")
);
Plus tard, certaines lignes sont insérées en spécifiant l'id:
INSERT INTO "jos_content" VALUES (1,36,'About',...)
À un moment plus tard certains enregistrements sont insérés sans id et ils échouent avec l'erreur:
Error: duplicate key value violates unique constraint
.
Apparemment, l'id a été défini comme une séquence:
Chaque insertion ayant échoué augmente le pointeur dans la séquence jusqu'à ce qu'il augmente jusqu'à une valeur qui n'existe plus et que les requêtes réussissent.
SELECT nextval('jos_content_id_seq'::regclass)
Quel est le problème avec la définition de la table? Quelle est la manière intelligente de résoudre ce problème?