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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Alors MySQL me retourne l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Updating of OLD row is not allowed in trigger
J'en déduis qu'on ne peut pas changer la valeur de OLD.

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

Merci beaucoup