ホームページ >データベース >mysql チュートリアル >DELETE 後にテーブルから削除する MySQL トリガーを作成するときに「6 行目の終わりに近いチェック構文」エラーが発生するのはなぜですか?

DELETE 後にテーブルから削除する MySQL トリガーを作成するときに「6 行目の終わりに近いチェック構文」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-02 16:53:02238ブラウズ

Why Am I Getting a

MySQL トリガー: AFTER DELETE 後のテーブルからの削除 - 構文エラーと解決策

「patron_info」から行を削除するトリガーを作成しようとしたとき「patrons」テーブルから行が削除された後、「6 行目の END 付近の構文を確認してください」というエラー メッセージが表示される場合があります。このエラーは、トリガー コードの構文エラーを示します。

現在、指定されたトリガー コードには、DELETE ステートメントの WHERE 句に構文エラーがあります:

DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id

ここでの問題は、トリガーは、「patrons」エイリアスを使用して「patrons」テーブルを参照します。このエイリアスは、トリガーの BEGIN ブロックと END ブロック内でのみ使用できます。これを解決するには、DELETE ステートメントは代わりに、「patrons」テーブルから削除された行を表す「古い」エイリアスを参照する必要があります:

DELETE FROM patron_info
    WHERE patron_info.pid = old.id

この修正により、トリガー コードは次のようになります:

CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
    WHERE patron_info.pid = old.id;
END

さらに、DELETE ステートメントがステートメントを終了するセミコロン (;) で終わっていることを確認することが重要です。コンソールにトリガー コードを入力するときは、トリガーの境界を定義するために区切り文字も使用する必要があります。

以上がDELETE 後にテーブルから削除する MySQL トリガーを作成するときに「6 行目の終わりに近いチェック構文」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。