1

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

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

これらのケースは、私の状況よりもはるかに複雑です。ArgentineWines5 列のテーブルを作成し、 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

4

0 に答える 0