Função em PLSQL para corrigir as os valores das sequences.
CREATE OR REPLACE FUNCTION "public"."fixsequence"()
RETURNS "pg_catalog"."int2" AS $BODY$declare v_reg record;
v_sql varchar;
BEGIN
for v_reg in (
select t.table_name
from information_schema.tables t
where t.table_schema = 'public'
) loop
v_sql := 'SELECT setval(''' || v_reg.table_name || '_id_seq'', (SELECT max(id)+1 FROM ' || v_reg.table_name || '))';
execute v_sql;
end loop;
RETURN 1;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
Furtada descaradamente do Ariel Pat$%&S#.

Comentários