DB:使用MySQLのトリガーエラー:1442
のMySQL:MySQLのワークベンチ私は現在、我々は、ユーザーが登録してチケットを購入/ログイン可能な空港のウェブサイトを設計する必要があり、クラスのためのプロジェクトに取り組んでいます
提供された様々なフライトのために。しばらくの間プロジェクトに取り組んだ後、私のトリガーは機能していないことに気付きました。
私はエラーが表示されます。Error Code: 1442. Can't update table 'reservation' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
私はチケットを選択して購入するユーザーのためのフォームを作成する前に予約を挿入しようとすることで、このエラーにつまずきました。私は誰かが私のデータベースを見て、コマンドの使用法を挿入して、私のトリガーコードを見てもらえないのだろうかと思っていました。私は何時間もこれを把握しようとしているので、助けてくれれば幸いです。
Insertコマンド:http://pastebin.com/tyBPWNDd
全体の問題のDBとトリガー:http://pastebin.com/BvUj1NdH
解決:おかげで、私は、MySQLはそれらをサポートしていないとき、再帰的トリガーを使用していた私の問題を特定することができたすべてのヘルパーに。再帰的なコードを削除し、私のウェブサイトのバックエンドでトリガーの代わりにcurrent_dateを処理させることで、私の問題を解決しました。私はすぐに固定トリガを投稿します。
トリガーは、実行されたテーブルを変更することはできません。これが起こらないようにロジックを並べ替える必要があります。 –
@TimBiegeleisenありがとうございました!あなたは大きな助けとなりました – Tonk
あなたにとって有益なのはうれしいですが、この質問が他の人にもっと役立つように、問題をどのように解決したかについてコメントしてください。 –