為什麼在刪除後建立 MySQL 觸發器以從表中刪除時出現「檢查第 6 行接近 END 的語法」錯誤?

Mary-Kate Olsen
發布: 2024-11-02 16:53:02
原創
149 人瀏覽過

Why Am I Getting a

MySQL 觸發器:刪除後從表中刪除- 語法錯誤和解決方案

嘗試建立觸發器以從「patron_info」中刪除行時從「patrons」表中刪除一行後,可能會遇到「檢查第6 行END 附近的語法」的錯誤訊息。此錯誤表示觸發器程式碼中存在語法錯誤。

提供的觸發器程式碼目前在DELETE 語句的WHERE 子句中存在語法錯誤:

DELETE FROM patron_info
    WHERE patron_info.pid = patrons.id
登入後複製

這裡的問題是觸發器使用「patrons」別名引用「patrons」表,此別名僅在觸發器的BEGIN 和END 區塊中可用。要解決此問題,DELETE 語句應改為引用「舊」別名,它表示從「顧客」表中刪除的行:

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 語句以分號(;) 結尾以終止該語句也很重要。在控制台輸入觸發代碼時,也應該使用分隔符號來定義觸發邊界。

以上是為什麼在刪除後建立 MySQL 觸發器以從表中刪除時出現「檢查第 6 行接近 END 的語法」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!