Trigger - Problème INTO ou IF
Bonjour à tous,
Voilà mon trigger :
Code:
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 ; |
Le update (première requête) est OK.
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 ! ;)