Istruzione di Liquibase autoIncrement="true"
genera serial
colonna per PostgreSQL. Per serial
colonna PostgreSQL creerà una sequenza con un nome come tablename_colname_seq
. I valori predefiniti delle colonne verranno assegnati da questa sequenza.
Ma quando esplicitamente inserisci un valore nella colonna seriale, non influisce sul generatore di sequenze e il suo valore successivo non cambierà. Quindi può generare un valore duplicato, che è esattamente il tuo caso.
Per evitare ciò dopo aver inserito valori espliciti è necessario modificare il valore corrente di un generatore di sequenze con ALTER SEQUENCE
istruzione o con setval()
funzione, es.:
ALTER SEQUENCE tablename_colname_seq RESTART WITH 42;
SELECT setval('tablename_colname_seq', (SELECT max(colname) FROM tablename));
Questo dovrebbe risolvere il problema.