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 :

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;
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
 
SELECT mafonction(id_indiv) FROM unetable
mais, ça ne fonctionne pas.

Merci pour vos conseils...

PS : je fais deux requetes car le volume de données est trop important.