Bonjour à tous,
Voilà mon trigger :
Le update (première requête) est OK.
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
27
28 delimiter // CREATE TRIGGER t_messages_trig_insert BEFORE INSERT ON t_messages FOR EACH ROW BEGIN DECLARE nbMsg, admin integer; UPDATE s_personnages SET nbTest = nbTest + 30, nbTotalTest = nbTotalTest + 30 WHERE idUtilisateur = NEW.idComptePrin; SELECT count(*), p.admin into @nbMsg, @admin FROM t_messages m, s_personnages p WHERE p.idUtilisateur = m.idComptePrincipal AND idComptePrincipal = NEW.idComptePrincipal; IF @nbMsg > 50 THEN UPDATE s_personnages SET test2 = test2 + 5 WHERE idUtilisateur = NEW.idComptePrin; ELSEIF @admin=0 THEN UPDATE s_personnages SET test1 = test1 + 5 WHERE idUtilisateur = NEW.idComptePrin; END IF; END// delimiter ;
J'ai l'impression que c'est la seconde requête qui plante, que les valeurs attribuées aux variables ne sont pas les bonnes... Pourtant lorsque je fais la requête directement en sql, elle me donne le résultat souhaité. Le résultat souhaité respecte la condition du IF et du ELSEIF et pourtant, aucune des 2 requêtes n'est appliquée. Si je mets un ELSE, c'est la requête du else qui est appliquée....
Pourtant, j'ai trouvé partout que c'était bien ainsi qu'on attribuait une valeur à une variable...
J'ai vraiment l'impression de tourner en rond, alors si la solution vous saute aux yeux, donnez-moi quelques indications.
Merci à vous !
Partager