錯誤:違反外鍵限制 - 刪除父行
嘗試刪除作業記錄(例如,DELETE FROM jobs WHERE job_id = 1 LIMIT 1;
)會導致錯誤#1451:「無法刪除或更新父行:外鍵約束失敗」。發生這種情況是因為 advertisers
表有一個外鍵引用 jobs
表的 advertiser_id
.
資料庫架構:
資料庫包含以下表格:
advertisers
:
advertiser_id
(主鍵)name
、password
、email
、address
、phone
、fax
、session_token
advertisers_ibfk_1
引用 jobs.advertiser_id
jobs
:
job_id
(主鍵)advertiser_id
(外鍵)name
、shortdesc
、longdesc
、address
、time_added
、active
、moderated
解:暫時停用外鍵約束
解決方案涉及暫時停用外鍵檢查以允許刪除,然後重新啟用它們以保持資料完整性:
<code class="language-sql">SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checks DELETE FROM `jobs` WHERE `job_id` = 1 LIMIT 1; -- Delete the problematic job record SET FOREIGN_KEY_CHECKS = 1; -- Re-enable foreign key checks</code>
此方法允許刪除,同時保持整個資料庫的參考完整性。 請記住仔細考慮禁用外鍵檢查的影響,並且僅在絕對必要時才使用此方法。
以上是為什麼無法刪除作業記錄:違反外鍵約束?的詳細內容。更多資訊請關注PHP中文網其他相關文章!