このフォーラム reg で 4 つのケースを読みました。
エラー コード: 1442。ステートメントで既に使用されているため、ストアド ファンクション/トリガーのテーブル 'tablename' を更新できません
これらのケースは、私の状況よりもはるかに複雑です。ArgentineWines
5 列のテーブルを作成し、 10 行をロードして、トリガーを作成しました。
CREATE TRIGGER Trigger_Before_An_ArgentineWines_update
AFTER UPDATE ON ArgentineWines
FOR EACH ROW
INSERT INTO ArgentineWines
SET action = 'update',
RankingId = OLD.RankingId,
WineName = OLD.WineName,
Description = OLD.Description,
RecordDate = NOW();
テーブルに変更を加えてトリガーをテストしようとすると、問題が発生します。2つの異なる方法でテーブルを更新しようとしました
最初の試み:
USE Sakila;
UPDATE ArgentineWines
SET WineName = REPLACE(WineName,'GRAFFIGNA RESERVE','GRAFFIGNA RESERVE Grandiose')
WHERE RankingId = 6;
2 回目の試行:
USE Sakila;
UPDATE ArgentineWines
SET WineName = 'GRAFFIGNA RESERVE Grandiose'
WHERE RankingId = 6;
何を試しても、次のエラーが発生します。
エラー コード: 1442。このストアド関数/トリガーを呼び出したステートメントで既に使用されているため、ストアド関数/トリガーのテーブル ' argentinewines ' を更新できません
エラーがポップアップし続けても、私は使用した後、BEFORE を使用しました。
質問: ストアド プロシージャを呼び出している他のステートメントはどれですか? すでに何を使用していますか?エラーの説明はそれほど明確ではありません。
この謎に対する考えや解決策は素晴らしいものになるでしょう。DH