Bonjour,
Je souhaite exécuter une requête qui insère des données dans une table temporaire. Cette table temporaire sert de source pour l'exécution d'une deuxième requête qui fait également une insertion dans une table définitive après un calcul. Je souhaite faire une procédure qui enchaine ces 2 requêtes dans le style :
Je ne sais pas comment executer cette fonction en boucle. Je pensais faire un appel dans une requete, genre :
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
18
19
20
21 -- Function: CREATE OR REPLACE FUNCTION mafonction(id_indiv integer) RETURNS void AS $BODY$DECLARE id_indiv ALIAS FOR $1; BEGIN DROP TABLE tmp; -- requete1 CREATE TABLE tmp AS SELECT * FROM matable WHERE matable.id = id_indiv; -- requete2 INSERT INTO matablefinale (champ1, champ2, avg(champ3)) SELECT champ1, champ2, champ3 FROM tmp GROUP BY champ1, champ2 HAVING avg(champ3)>5 END;$BODY$ LANGUAGE 'plpgsql' VOLATILE;
mais, ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT mafonction(id_indiv) FROM unetable
Merci pour vos conseils...
PS : je fais deux requetes car le volume de données est trop important.
Partager