問題タブ [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 投票する
1 に答える
832 参照

mysql - MySQL トリガー: エラー #1442

私は MySQL データベースに取り組んでおり、トリガーを作成する際に問題に直面しています。データベースに、1 対多の関係を持つ "user" と "book" の 2 つのテーブルがあり、user_id が "book" テーブルの外部キーであるとします。本が削除されたときに「user」テーブルの「book_count」列を 1 減らすトリガーを作成しました。

ユーザーが削除されたときに、ユーザーのすべての本を削除したいと思います。私はこれを試しました:

これにより、次のエラーが返されます。

エラーは、削除しようとしているユーザー テーブルの行を更新しようとする最初のトリガーに対するものであることがわかります。トリガーで実行したい場合の回避策はありますか?

0 投票する
1 に答える
131 参照

mysql - 更新をトリガーしようとしてエラー 1442 が発生しました

chatroompost.view更新が発生したときに1から0への更新をトリガーしようとしていましたが、chatroompost.likecount <= -5

クエリ:

しかし、私は得ました

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

REPLACE私はすべてAFTERを試しましBEFOREたが、それでも同じエラーが発生しました。

0 投票する
4 に答える
1137 参照

mysql - エラー コード: 1442。格納された関数/トリガーでテーブル 'students' を更新できません

次のトリガーがあります。

エラー:

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

0 投票する
1 に答える
302 参照

mysql - SQL エラー (1442) 、解決策はありますか?

MySQL でこのトリガーを作成しました (テーブル product の更新後):

しかし、価格を更新すると、このエラーが発生します

: SQL エラー (1442) このストアド ファンクション/トリガーを呼び出したステートメントで既に使用されているため、ストアド ファンクション/トリガーのテーブル 'product' を更新できません。*/

次のような 2 つのテーブルと 2 つのトリガーを作成しました。

Trigger 1(テーブル製品の更新後):

Trigger 2(テーブルに挿入した後product_price):

しかし、私は再びそのエラーを受けました。

子の価格が変更されたときに親の価格を更新する必要があるのですが、解決策はありますか?

ありがとう。

0 投票する
1 に答える
105 参照

mysql - MySQL トリガーがエラー 1064 をスローする

まず第一に、同じタイプの質問がたくさんあることは知っていますが、それらは私の問題を解決しませんでした!

指定された 2 列のセットに対して 10 行を超える場合、最も古い行を削除したいと考えています。私のトリガーは次のようになります。

ファイルにトリガーがあり、実行するとエラーがスローされます。完全なエラーは

行 25 は、DELIMITER;

私のテーブルは次のようになります。

エラーをスローした後でもトリガーが追加されます。しかし、(columnA と columnB の特定の組み合わせに対して) 11 番目のエントリをテーブルに追加すると、次のエラーが発生します。

トリガー内の select ステートメントと delete ステートメントは、もちろん適切な値を使用して個別に実行すると問題ありません。

MySQL のバージョン5.5.46

修正/提案に非常に感謝します。

0 投票する
1 に答える
6339 参照

mysql - MySql - AFTER INSERT トリガーは、それを呼び出した行を削除できます

可能な限り簡単な言葉で言えば、実際にトリガーに設定されている行を削除することは可能ですか。つまり、トリガーがあり、AFTER INSERT ON <table2>トリガー内にSQLがありますINSERT/UPDATE別の<table1>( a に基づくWHERE)、そして最終的にエントリを削除する傾向があります/の行 (基本的にトリガーを起動した行)。

トリガー SQL:

DELETE(のすぐ上)がなければEND;、トリガーは正常に動作します-UPDATEそうでなければ存在する場合INSERT- withDELETEステートメントは次のエラーを返します:


ちなみに、エラーは一目瞭然ですが、これが可能かどうかを確認したかったのですが、そうでない場合は、他の方法である可能性があります。つまり、adddata_tmpテーブルをすべて空にする (またはクリーンアップする) 必要があります。時間(データをメインテーブルにINSERTコピーする場合)adddata

私が念頭に置いている 1 つのアイデアは、 を使用して、いくつかのフィールドに基づいてEVENTをクリーンアップすることです。これは、トリガーの最後のステートメントとして ( の代わりに) 設定されます。adddata_tmpstatusDELETE