Puedes utilizar estar función:

En la línea: AND namespace.nspname IN ('public', 'prueba'), agrega los nombres 
de los esquemas sobre los que quieres modificar la secuencia.

CREATE OR REPLACE FUNCTION public.decrementar_secuencia (
)
RETURNS pg_catalog.void AS
$body$
DECLARE
iterator refcursor;
BEGIN
FOR iterator IN
SELECT namespace.nspname || '.' || catalogo.relname from pg_catalog.pg_class 
catalogo INNER JOIN pg_catalog.pg_namespace namespace
ON (catalogo.relnamespace = namespace.oid)
WHERE
catalogo.relkind = 'S'
AND namespace.nspname IN ('public', 'prueba')
Loop
EXECUTE 'ALTER SEQUENCE ' || iterator ||' INCREMENT BY 1';
END Loop;
END
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;

Saludos.

----- Mensaje original -----

> Buenas tardes lista, uso postgres8.4, Linux y tengo un problema con
> las secuencias de todas las tablas de mi db, el valor de su
> incremento es de 2 en 2 necesito colocar el INCREMENT de todas las
> secuencias en 1, quiero saber como hacerlo a todas las secuencias de
> una sola vez sin estar colocando el nombre de cada secuencia.
> Agradeciendo de antemano su ayuda.

Responder a