PTS 列を更新するための機能しない MySQL トリガーのトラブルシューティング
ユーザーは、一見単純な MySQL トリガーが実行に失敗するという不可解な問題に直面しています。彼らに助けを求めるよう促します。トリガーの目的は、「played_games」列の変更に基づいて「pos_table」テーブルの「PTS」列を更新することです。
コードを詳細に検査すると、「played_games」列の変更時にトリガーが正しく機能することがわかります。列が変更されます。ただし、さらにトラブルシューティングを行うと、次のエラー メッセージが表示されます。「このストアド関数/トリガーを呼び出したステートメントによってすでに使用されているため、ストアド関数/トリガーのテーブル pos_table を更新できません。」
このエラーは、次のことを示唆しています。 MySQL ストアド関数とトリガーの制限が、望ましい動作を妨げている可能性があります。 MySQL のドキュメントによると、このような関数やトリガーは、それらを呼び出したステートメントによって読み取りまたは書き込みに同時に使用されるテーブルを変更することはできません。
潜在的な解決策は、トリガーのタイプを「BEFORE INSERT」に変更し、
さらに、ユーザーの意図した計算は、格納された列を介するのではなく、表示時に直接実行できるため、コードが簡素化され、トリガーの問題が排除されます。
以上がPTS 更新の MySQL トリガーが「テーブル pos_table を更新できません...」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。