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 :
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 :
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
Partager