Django + Postgres: duplicate key value violates unique constraint

Aquesta entrada tracta d'un problema que et pot aparèixer quan importes una taula amb valors ja creats.

Aleshores et trobes que la clau que assigna els nous identificadors(AUTOINCREMENT o SERIAL) no es reactualitza i, per tant, apareix l'error esmentat.

Per tal de solucionar-ho has de seguir aquests tres passos:

//Consultem el valor més alt de la taula
SELECT MAX
(id) FROM la_teva_taula;

//mirem quin és el següent valor que pendria una nova entrada
SELECT nextval
('la_teva_taula_id_seq');


//assignem el nou valor amb el màxim vist més una unitat per tal
d'evitar col·lisió amb l'últim element afegit
SELECT setval
('
la_teva_taula_id_seq', (SELECT MAX(id) FROM la_teva_taula)+1);

Comentaris

Entrades populars d'aquest blog

Intel Data Alignment

L'Europa del S. X al S.XIX

OpenTTD: mapa d'alçades de Catalunya