Às vezes (por exemplo, ao restaurar o despejo), o Postgres define um número inválido para a sequência, o que pode causar erros de inserção: o
valor da chave duplicado viola a restrição única
Para resolver isso, verifique primeiro o valor máximo da chave primária em sua tabela:
SELECT MAX(id) FROM table_name;
Em seguida, compare-o com o valor sequencial:
SELECT nextval('table_name_id_seq');
O valor da sequência deve ser maior, se não, execute:
SELECT setval('table_name_id_seq', (SELECT MAX(id) +1 FROM table_name));