首頁 >資料庫 >mysql教程 >如何使用MySQL觸發器從另一個表中刪除資料後正確地從一個表中刪除資料?

如何使用MySQL觸發器從另一個表中刪除資料後正確地從一個表中刪除資料?

Linda Hamilton
Linda Hamilton原創
2024-11-03 16:25:03441瀏覽

How to Correctly Delete Data from One Table After Deleting from Another Using MySQL Triggers?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn