2017-08-15 25 views
0

J'ai la requête suivante qui génère une liste d'instructions ALTER TABLE dans le champ 'Sortie de données' dans pgAdmin4. Je peux copier & les coller de nouveau dans le volet de requête et les exécuter là.Comment exécuter les instructions de requête générées dans pgAdmin4?

select 'ALTER TABLE ' || table_name || ' OWNER TO myuser;' from information_schema.tables where table_schema = 'public'; 

Comment puis-je exécuter les instructions générées sans avoir à copier & les coller?

Répondre

1

Vous pouvez utiliser la fonction pour cela.

CREATE OR REPLACE FUNCTION change_permission_table() 
RETURNS VOID AS $$ 
DECLARE 
    rec text; 
BEGIN 
    FOR rec IN SELECT 'ALTER TABLE ' || table_name || ' OWNER TO maz;' FROM information_schema.tables WHERE table_schema = 'public' 
    LOOP 
     EXECUTE rec; 
    END LOOP; 
END; 
$$ LANGUAGE plpgsql; 

-- Run the function to change the permission 
SELECT change_permission_table()