Dépannage d'un déclencheur MySQL non fonctionnel pour la mise à jour de la colonne PTS
Un utilisateur est confronté à un problème déroutant où un déclencheur MySQL apparemment simple ne parvient pas à s'exécuter, les incitant à demander de l’aide. Le but du déclencheur est de mettre à jour une colonne "PTS" dans la table "pos_table" en fonction des modifications apportées à la colonne "played_games".
Une inspection détaillée du code révèle que le déclencheur doit fonctionner correctement lorsque "played_games" la colonne est modifiée. Cependant, après un dépannage plus poussé, un message d'erreur s'affiche : "Impossible de mettre à jour la table pos_table dans la fonction/le déclencheur stocké car elle est déjà utilisée par l'instruction qui a invoqué cette fonction/le déclencheur stocké."
Cette erreur suggère que une limitation des fonctions et déclencheurs stockés dans MySQL peut entraver le comportement souhaité. Selon la documentation MySQL, ces fonctions et déclencheurs ne peuvent pas modifier les tables qui sont simultanément utilisées en lecture ou en écriture par l'instruction qui les a invoquées.
Une solution potentielle consiste à modifier le type de déclencheur en "BEFORE INSERT" et à modifier le valeurs dans la variable "NEW".
De plus, le calcul prévu par l'utilisateur peut être effectué directement au moment de l'affichage plutôt que via une colonne stockée, simplifiant le code et éliminant le problème avec le déclencheur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!