MySQL 觸發器:從一個表刪除後從另一個表刪除
問題:
您想要建立一個觸發器,每當從表1(讀者)中刪除一行時,該觸發器就會自動從表2 (patron_info) 中刪除行。但是,您在建立觸發器時遇到語法錯誤。
解決方案:
該錯誤可能是由觸發器內的 DELETE 語句中的語法不正確引起的。具體來說,您需要使用old.id 而不是顧客.id 來引用已刪除行的ID,根據以下觸發器:
<code class="sql">CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END</code>
確保包含;在DELETE 語句末尾,並檢查觸發器其他部分的語法是否正確。
此外,請記住在控制台視窗中輸入觸發器代碼時使用分隔符號。例如,您可以使用 $ 作為分隔符,如下所示:
<code class="sql">DELIMITER $ CREATE TRIGGER log_patron_delete AFTER DELETE ON patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END$ DELIMITER ; $</code>
以上是如何使用MySQL觸發器從另一個表中刪除資料後正確地從一個表中刪除資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!