検索

ホームページ  >  に質問  >  本文

MySql エラー: ストアド関数/トリガー内のテーブルは、このストアド関数/トリガーを呼び出すステートメントによってすでに使用されているため、更新できません

MySQL クエリを実行しています。ただし、フォーム入力から新しい行を追加すると、次のエラーが発生します:

リーリー

コードから:

リーリー

このエラーは何を意味しますか?

P粉668804228P粉668804228454日前693

全員に返信(2)返信します

  • P粉573809727

    P粉5738097272023-10-16 17:19:55

    正しい構文は次のとおりです:

    リーリー

    返事
    0
  • P粉921165181

    P粉9211651812023-10-16 11:22:02

    INSERT トリガーの起動中はテーブルを変更できません。 INSERT は一部のロック操作を実行する可能性があり、デッドロックが発生する可能性があります。さらに、トリガーからテーブルを更新すると、無限再帰ループで同じトリガーが再度起動されます。これらの理由は両方とも、これを実行できない MySQL 理由です。

    ただし、達成したい内容に応じて、

    NEW.fieldname を使用して新しい値にアクセスすることも、古い値 にアクセスすることもできます (UPDATE ## を実行する場合)。 #--OLD

    full_brand_name

    という行があり、small_name フィールドの最初の 2 文字を短縮名として使用したい場合は、次のように使用できます。 リーリー

    返事
    0
  • キャンセル返事