Instrukcja Liquibase autoIncrement="true"
generuje serial
kolumna dla PostgreSQL. Dla serial
kolumna PostgreSQL utworzy sekwencję o nazwie takiej jak tablename_colname_seq
. Domyślne wartości kolumn zostaną przypisane z tej sekwencji.
Ale kiedy wyraźnie wstawić wartość do kolumny szeregowej, nie ma to wpływu na generator sekwencji, a jej następna wartość nie ulegnie zmianie. Dzięki temu może wygenerować zduplikowaną wartość, co jest dokładnie w Twoim przypadku.
Aby temu zapobiec po wstawieniu jawnych wartości, musisz zmienić bieżącą wartość generatora sekwencji za pomocą ALTER SEQUENCE
oświadczenie lub za pomocą setval()
funkcja, np.:
ALTER SEQUENCE tablename_colname_seq RESTART WITH 42;
SELECT setval('tablename_colname_seq', (SELECT max(colname) FROM tablename));
To powinno rozwiązać problem.