Ошибка Unique violation: 7 ERROR: duplicate key value violates unique constraint в PostgreSQL
Причина ошибки в PostgreSQL Unique violation: 7 ERROR: duplicate key value violates unique constraint ...
заключается в том, что нарушена последовательность инкрементного поля при добавлении записи в таблицу. Приведённый ниже sql-запрос генерирует sql-запросы, которые нужно выполнить, чтобы восстановить все необходимые последовательности.
SELECT 'SELECT SETVAL(' || quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) || ', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' || quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';' AS sql FROM pg_class AS S, pg_depend AS D, pg_class AS T, pg_attribute AS C, pg_tables AS PGT WHERE S.relkind = 'S' AND S.oid = D.objid AND D.refobjid = T.oid AND D.refobjid = C.attrelid AND D.refobjsubid = C.attnum AND T.relname = PGT.tablename ORDER BY S.relname;