Ошибка 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;

Тэги:

Тэг в списке: