Bonjour,
Problème d'erreur :
#1328 Incorrect number of FETCH variables
J'utilise une procédure stockée pour mettre à jour une table (parent) Clients à l'aide du champ règlement de la table (enfant) Commandes.
La clé secondaire porte sur le champ clientId.
Pour se faire voici le code :
Il y a bien deux variables pour le FETCH et c'est précisément ce qui ne plait pas à MySQL. Pourtant, le manuel de référence pratique ce système à deux variables. Voir :
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
22
23
24
25
26 DELIMITER $$ DROP PROCEDURE IF EXISTS `et1050_1`.`SoldeClients` $$ CREATE PROCEDURE `et1050_1`.`SoldeClients` () BEGIN DECLARE V_d DECIMAL(6,2); DECLARE V_m MEDIUMINT; DECLARE V_f BOOLEAN DEFAULT FALSE; DECLARE bob CURSOR FOR SELECT SUM(`Règlement`),`clientId` FROM `Commandes` GROUP BY `clientId`; DECLARE CONTINUE HANDLER FOR NOT FOUND SET V_f = TRUE; OPEN bob; FETCH bob INTO V_d, V_m; WHILE (NOT V_f) DO UPDATE `Clients` SET `CAttc`=V_d where `idClients`=V_m; FETCH bob into V_d; END WHILE; CLOSE bob; END $$ DELIMITER ;
http://dev.mysql.com/doc/refman/5.0/fr/cursors.html
Pourriez-vous me guider ?
Merci !
Partager