Avez-vous essayé avec un anonymous code block
? Ce bloc de code ci-dessous sélectionne toutes les tables du schéma public
qui appartient à l'utilisateur postgres
et définissez la propriété sur l'utilisateur 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;
$$;
Gardez à l'esprit que cette opération modifiera la propriété de toutes les tables dans votre schéma qui appartient à l'utilisateur donné. Évidemment, vous pouvez filtrer davantage ces tables en modifiant le pg_tables
requête dans la boucle. Jetez un oeil à :
SELECT * FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';
Utilisez-le avec précaution !
MODIFIER :Pour filtrer quelques tables de la sélection ci-dessus, ajoutez un NOT IN
, tels que :
SELECT * FROM pg_tables
WHERE schemaname = 'public' AND tableowner = 'postgres'
AND tablename NOT IN ('table1','table2','table3')