有效地刪除mysql中的孤兒記錄:三種經過驗證的方法
>本指南展示了三種有效的技術,用於刪除MySQL中的孤兒行 - 資料庫條目,在基於共享ID的相關表中缺少相應的記錄。
方法1:利用左JOIN和為null>
這種方法利用A根據特定ID欄位組合兩個表格中的資料。 然後,在加入表ID列中透過ALEFT JOIN
值識別的孤兒行被定為刪除。
NULL
<code class="language-sql">DELETE b FROM BLOB b LEFT JOIN FILES f ON f.id = b.fileid WHERE f.id IS NULL;</code>
> 此方法採用帶有
的子查詢來檢查相關表中的匹配記錄。缺少匹配的行被標記為刪除。
NOT EXISTS
<code class="language-sql">DELETE FROM BLOB WHERE NOT EXISTS (SELECT NULL FROM FILES f WHERE f.id = fileid);</code>
> 這種簡單的方法使用
直接比較ID。 識別並刪除了相關表中缺少ID的行。>
NOT IN
<code class="language-sql">DELETE FROM BLOB WHERE fileid NOT IN (SELECT f.id FROM FILES f);</code>
>始終執行交易中的語句,以確保資料完整性。 在發生錯誤或意外後果的情況下,這允許回滾。 在>和
(或)之後之前使用DELETE
。 START TRANSACTION
>
以上是如何使用連接而不是存在或不在中刪除MySQL中的孤兒行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!