首頁 > 資料庫 > mysql教程 > 如何正確刪除MySQL中多個表的行?

如何正確刪除MySQL中多個表的行?

Barbara Streisand
發布: 2025-01-19 10:26:10
原創
197 人瀏覽過

How to Correctly Delete Rows Across Multiple Tables in MySQL?

MySQL跨表刪除:語法錯誤排查

在MySQL中,同時從多個表中刪除行需要特殊的查詢語法。嘗試執行以下刪除查詢時:

DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`
登入後複製

可能會遇到以下錯誤:

<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>
登入後複製

此錯誤源自於跨表刪除的語法錯誤。要解決此問題,請在DELETE語句中使用JOIN:

DELETE p, pa
      FROM pets p
      JOIN pets_activities pa ON pa.id = p.pet_id
     WHERE p.order > :order
       AND p.pet_id = :pet_id
登入後複製

或者,要只從pets_activities表中刪除,可以使用:

DELETE pa
      FROM pets_activities pa
      JOIN pets p ON pa.id = p.pet_id
 WHERE p.order > :order
   AND p.pet_id = :pet_id
登入後複製

透過這種方式使用JOIN語句,可以有效地執行MySQL中的跨表刪除操作。請記住,這種方法也適用於具有參照完整性的單表刪除。

以上是如何正確刪除MySQL中多個表的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板