¿Has probado con un anonymous code block
? Este bloque de código a continuación selecciona todas las tablas del esquema public
que pertenece al usuario postgres
y establezca la propiedad en el usuario user
:
DO $$
DECLARE row RECORD;
BEGIN
FOR row IN SELECT * FROM pg_tables
WHERE schemaname = 'public' AND tableowner = 'postgres' LOOP
EXECUTE FORMAT('ALTER TABLE %I.%I OWNER TO user',row.schemaname,row.tablename);
END LOOP;
END;
$$;
Tenga en cuenta que esta operación modificará la propiedad de todas las tablas en su esquema que pertenece al usuario dado. Obviamente, puede filtrar aún más estas tablas cambiando pg_tables
consulta en el bucle. Echa un vistazo a:
SELECT * FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';
¡Úsalo con cuidado!
EDITAR :Para filtrar algunas tablas de la selección anterior, agregue un NOT IN
, como:
SELECT * FROM pg_tables
WHERE schemaname = 'public' AND tableowner = 'postgres'
AND tablename NOT IN ('table1','table2','table3')