Bonjour,
Sauriez-vous comment faire l'équivalent des commandes en rouge sans avoir besoin des droits admin ? (a priori, j'ai un utilisateur ayant un grant all sur sa base de données)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 update pg_class set reltriggers=0 where relname like 'message_%' and relname not like '%_view' and relname not like '%_key'; \copy blabla from 'test.csv' delimiter ';' csv select ModifTrigger();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE FUNCTION ModifTrigger() RETURNS void AS $$ DECLARE r record; BEGIN FOR r IN select relname,count(*) from pg_class, pg_trigger where pg_class.oid=tgrelid and relname like 'message_%' and relname not like '%_view' and relname not like '%_key' group by relname LOOP RAISE NOTICE '% : %', r.relname, r.count; update pg_class set reltriggers=r.count where relname=r.relname; END LOOP; END; $$ LANGUAGE plpgsql;
A priori, cette manip me fait passer mon import de 63min à 45min, mais je ne pourrais pas être root sur la vraie machine de prod. Il faut donc un équivalent ou la configuration nécessaire (permission à ajouter ?) pour avoir droit de faire un tel update sans être root
nb: Je suis en version 8.3 (mais les infos sur les versions suivantes m'intéressent aussi)
par avance
Partager