Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi mon déclencheur MySQL pour la mise à jour de PTS échoue-t-il avec l'erreur « Impossible de mettre à jour la table pos_table » ?

Susan Sarandon
Libérer: 2024-11-06 15:11:03
original
196 Les gens l'ont consulté

Why Does My MySQL Trigger for Updating PTS Fail with

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!