ホームページ  >  記事  >  データベース  >  PTS 更新の MySQL トリガーが「テーブル pos_table を更新できません...」エラーで失敗するのはなぜですか?

PTS 更新の MySQL トリガーが「テーブル pos_table を更新できません...」エラーで失敗するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-06 15:11:03199ブラウズ

Why Does My MySQL Trigger for Updating PTS Fail with

PTS 列を更新するための機能しない MySQL トリガーのトラブルシューティング

ユーザーは、一見単純な MySQL トリガーが実行に失敗するという不可解な問題に直面しています。彼らに助けを求めるよう促します。トリガーの目的は、「played_games」列の変更に基づいて「pos_table」テーブルの「PTS」列を更新することです。

コードを詳細に検査すると、「played_games」列の変更時にトリガーが正しく機能することがわかります。列が変更されます。ただし、さらにトラブルシューティングを行うと、次のエラー メッセージが表示されます。「このストアド関数/トリガーを呼び出したステートメントによってすでに使用されているため、ストアド関数/トリガーのテーブル pos_table を更新できません。」

このエラーは、次のことを示唆しています。 MySQL ストアド関数とトリガーの制限が、望ましい動作を妨げている可能性があります。 MySQL のドキュメントによると、このような関数やトリガーは、それらを呼び出したステートメントによって読み取りまたは書き込みに同時に使用されるテーブルを変更することはできません。

潜在的な解決策は、トリガーのタイプを「BEFORE INSERT」に変更し、

さらに、ユーザーの意図した計算は、格納された列を介するのではなく、表示時に直接実行できるため、コードが簡素化され、トリガーの問題が排除されます。

以上がPTS 更新の MySQL トリガーが「テーブル pos_table を更新できません...」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。