問題タブ [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.
mysql - SQL トリガーの問題: このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブルを更新できません
こんにちは、トリガーを使用してテーブルを自動更新しようとしているときに問題に直面しています。
bill
私は不動産管理アプリを開発しており、不動産管理者側のために、同じ共有建物について家主ごとに年間および家主ごとに受け取ったすべての料金と支払いを含むテーブル ( ) を生成したいと考えています。
このパートで使用する主なテーブルは次のとおりです。
building
charge
(含むbuilding_id
)charge_payment
(building_id
と landlord_idを含むuser_id
)
このテーブル ( ) を生成するために、たとえば、テーブルに挿入する新しい料金挿入ごとにテーブルを生成するbill
トリガーをテーブルに作成しました。そのためにテーブルとテーブルをチェックインします。charge
bill
charge
charge_payment
これがどのように見えるかです:
私の問題は、同じ建物と同じ年に別の料金を追加すると、エラーが発生することです。bill
今までは、新しい料金が挿入される前にテーブル内のすべての rawを同じように削除することで問題を解決しましたyear
が、かなり汚れています :)
だから私は考えていたので、テーブルのこの削除トリガーを削除し、テーブルcharge
にトリガーを追加して、bill
各行に挿入する前に、それが挿入か単なるamount
更新かを確認しようとしました:
私には良さそうに見えましたが、このエラーをスローするMySqlには間違いありません:
誰かがそれを機能させる方法についての手がかりを持っているなら、それは素晴らしいことです。そうでなければ、アプリを再考する必要があると思います... :/
事前に感謝します。すべてを読んだらおめでとうございます:)
mysql - エラー コード: 1442。ステートメントで既に使用されているため、ストアド関数/トリガーのテーブル 'ArgentineWine' を更新できません
このフォーラム reg で 4 つのケースを読みました。
エラー コード: 1442。ステートメントで既に使用されているため、ストアド ファンクション/トリガーのテーブル 'tablename' を更新できません
これらのケースは、私の状況よりもはるかに複雑です。ArgentineWines
5 列のテーブルを作成し、 10 行をロードして、トリガーを作成しました。
テーブルに変更を加えてトリガーをテストしようとすると、問題が発生します。2つの異なる方法でテーブルを更新しようとしました
最初の試み:
2 回目の試行:
何を試しても、次のエラーが発生します。
エラー コード: 1442。このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル ' argentinewines ' を更新できません
エラーがポップアップし続けても、私は使用した後、BEFORE を使用しました。
質問: ストアド プロシージャを呼び出している他のステートメントはどれですか? すでに何を使用していますか?エラーの説明はそれほど明確ではありません。
この謎に対する考えや解決策は素晴らしいものになるでしょう。DH