Bonjour,
J'ai une table contenant les records de joueurs.
Pour que le classement soit cohérent, lors de l'insertion d'un record, je dois décaler les classement des joueurs moins bon d'une place.
Pour cela je pensais passer par un trigger de ce style :
Alors MySQL me retourne l'erreur suivante :Code:
1
2
3
4
5
6
7 CREATE TRIGGER insert_record AFTER INSERT ON record FOR EACH ROW BEGIN SET OLD.classement = OLD.classement + 1 WHERE OLD.score < NEW.score END
J'en déduis qu'on ne peut pas changer la valeur de OLD.Code:Updating of OLD row is not allowed in trigger
OK mais alors comment fait-on pour désigner :
- les colonnes de la ligne que l'on va insérer (le score à insérer)
- les colonnes de la ligne sur laquelle on fait le test, (les scores existants)
- les nouvelles valeurs des colonnes de la ligne qui est en train d'être testée ? (la nouvelle valeur d'un score déjà existant)
Si c'est pas très clair hésitez pas à me le faire savoir, je sais que c'est pas simple à expliquer :roll:
Merci beaucoup ;)