Последовательности - это объекты, которые возвращают значение, которое на единицу больше при каждом запросе, независимо от того, к какой транзакции он был вызван.По умолчанию последовательность начинается с 1 и может применяться к таблице или ко многим таблицам, поэтому она не может знать, сколько значений уже есть в вашей таблице.Если вы хотите, чтобы вставка работала, вам нужно будет установить ее вручную.
SELECT setval('roles_id_seq', (SELECT coalesce((SELECT max(id) from roles),1)))
В этом запросе предполагается, что использованная последовательность была создана в столбце "id"
таблицы "roles"
, если неИмя последовательности можно найти, проверив эти столбцы DDL, например, NOT NULL DEFAULT setval('the_sequence_name')
, и используйте его для установки значения.