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

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

Mary-Kate Olsen
リリース: 2024-11-02 16:53:02
オリジナル
248 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート