Você já tentou com um
anonymous code block
? Este bloco de código abaixo seleciona todas as tabelas do esquema public
que pertence ao usuário postgres
e defina a propriedade para o usuário 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;
$$;
Lembre-se de que esta operação modificará a propriedade de todas as tabelas em seu esquema que pertence ao usuário fornecido. Obviamente, você pode filtrar ainda mais essas tabelas alterando o
pg_tables
consulta no loop. Dê uma olhada em:SELECT * FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';
Use-o com cuidado!
EDITAR :Para filtrar algumas tabelas da seleção acima, adicione um
NOT IN
, como:SELECT * FROM pg_tables
WHERE schemaname = 'public' AND tableowner = 'postgres'
AND tablename NOT IN ('table1','table2','table3')