問題タブ [mysql-error-1442]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
58 参照

mysql - SQL トリガーの問題: このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブルを更新できません

こんにちは、トリガーを使用してテーブルを自動更新しようとしているときに問題に直面しています。

bill私は不動産管理アプリを開発しており、不動産管理者側のために、同じ共有建物について家主ごとに年間および家主ごとに受け取ったすべての料金と支払いを含むテーブル ( ) を生成したいと考えています。

このパートで使用する主なテーブルは次のとおりです。

  • building
  • charge(含むbuilding_id)
  • charge_payment(building_idと landlord_idを含むuser_id)

このテーブル ( ) を生成するために、たとえば、テーブルに挿入する新しい料金挿入ごとにテーブルを生成するbillトリガーをテーブルに作成しました。そのためにテーブルとテーブルをチェックインします。chargebillchargecharge_payment

これがどのように見えるかです:

私の問題は、同じ建物と同じ年に別の料金を追加すると、エラーが発生することです。bill今までは、新しい料金が挿入される前にテーブル内のすべての rawを同じように削除することで問題を解決しましたyearが、かなり汚れています :)

だから私は考えていたので、テーブルのこの削除トリガーを削除し、テーブルchargeにトリガーを追加して、bill各行に挿入する前に、それが挿入か単なるamount更新かを確認しようとしました:

私には良さそうに見えましたが、このエラーをスローするMySqlには間違いありません:

誰かがそれを機能させる方法についての手がかりを持っているなら、それは素晴らしいことです。そうでなければ、アプリを再考する必要があると思います... :/

事前に感謝します。すべてを読んだらおめでとうございます:)

0 投票する
0 に答える
78 参照

mysql - エラー コード: 1442。ステートメントで既に使用されているため、ストアド関数/トリガーのテーブル 'ArgentineWine' を更新できません

このフォーラム reg で 4 つのケースを読みました。

エラー コード: 1442。ステートメントで既に使用されているため、ストアド ファンクション/トリガーのテーブル 'tablename' を更新できません

これらのケースは、私の状況よりもはるかに複雑です。ArgentineWines5 列のテーブルを作成し、 10 行をロードして、トリガーを作成しました。

テーブルに変更を加えてトリガーをテストしようとすると、問題が発生します。2つの異なる方法でテーブルを更新しようとしました

最初の試み:

2 回目の試行:

何を試しても、次のエラーが発生します。

エラー コード: 1442。このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル ' argentinewines ' を更新できません

エラーがポップアップし続けても、私は使用した後、BEFORE を使用しました。

質問: ストアド プロシージャを呼び出している他のステートメントはどれですか? すでに何を使用していますか?エラーの説明はそれほど明確ではありません。

この謎に対する考えや解決策は素晴らしいものになるでしょう。DH