Bonjour à tous,
J'ai besoins de faire un update sur la colonne d'une table suivant une année pour insérer un nombre qui doit respecter une suite logique (n+1)
J'étais parti sur ceci :
Mon problème étant que ma variable iterator ne s'incrémente pas (colD toujours = 1) et que je ne comprends pas pourquoi. (J'ai essayé d'autre solution mais le problème reste identique).
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 CREATE OR REPLACE FUNCTION num(_p1 integer, _p2 integer) RETURNS void AS $func$ DECLARE mon_cursor CURSOR IS SELECT * FROM table1 JOIN table2 USING (colA) WHERE table2.colB = _p1 AND table2.colC = _p2; iterator INTEGER := 0; BEGIN FOR C IN mon_cursor LOOP iterator :=iterator +1; UPDATE table1 SET colD = iterator WHERE table1.colD = 0; END LOOP; END; $func$ LANGUAGE plpgsql;
Partager