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中文網其他相關文章!