Denne artikel forklarer, at din sekvens muligvis er ude af synkronisering, og at du manuelt skal bringe den tilbage i synkronisering.
Et uddrag fra artiklen, hvis webadressen ændres:
Hvis du får denne besked, når du prøver at indsætte data i en PostgreSQL-database:
ERROR: duplicate key violates unique constraint
Det betyder sandsynligvis, at den primære nøglesekvens i den tabel, du arbejder med, på en eller anden måde er blevet ude af synkronisering, sandsynligvis på grund af en masseimportproces (eller noget i den retning). Kald det en "bug bydesign", men det ser ud til, at du manuelt skal nulstille en primærnøgleindeks efter gendannelse fra en dumpfil. I hvert fald, for at se, om dine værdier er ude af synkronisering, skal du køre disse to kommandoer:
SELECT MAX(the_primary_key) FROM the_table;
SELECT nextval('the_primary_key_sequence');
Hvis den første værdi er højere end den anden værdi, er din sekvens ude af sync. Sikkerhedskopier din PG-database (for en sikkerheds skyld), og kør derefter denne kommando:
SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);
Det vil sætte sekvensen til den næste tilgængelige værdi, der er højere end enhver eksisterende primær nøgle i sekvensen.