Тази статия обяснява, че вашата последователност може да не е синхронизирана и че трябва ръчно да я върнете в синхронизация.
Извадка от статията в случай, че URL адресът се промени:
Ако получите това съобщение, когато се опитвате да вмъкнете данни в PostgreSQL база данни:
ERROR: duplicate key violates unique constraint
Това вероятно означава, че последователността на първичните ключове в таблицата, с която работите, е станала несинхронизирана, вероятно поради процес на масово импортиране (или нещо в този смисъл). Наречете го "бъг от дизайн", но изглежда, че трябва ръчно да нулирате индекса на първичен ключ след възстановяване от дъмп файл. Във всеки случай, за да видите дали стойностите ви не са синхронизирани, изпълнете тези две команди:
SELECT MAX(the_primary_key) FROM the_table;
SELECT nextval('the_primary_key_sequence');
Ако първата стойност е по-висока от втората, последователността ви не е синхронизирана. Архивирайте вашата база данни PG (за всеки случай), след което изпълнете тази команда:
SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);
Това ще настрои последователността на следващата налична стойност, която е по-висока от всеки съществуващ първичен ключ в последователността.