MySQL 外鍵約束問題:無法新增或更新子行
嘗試在MySQL 表中建立外鍵約束時,您可能會遇到錯誤1452:「無法新增或更新子行:外鍵約束失敗。」當一個表中的子行引用另一個表中不再存在的父行時,就會出現此問題。
在提供的場景中,您嘗試在引用 sourcecodes 表的 sourcecodes_tags 表中新增外鍵。但是,錯誤訊息表示 sourcecodes_tags 表中存在孤立記錄,這些記錄引用了 sourcecodes 表中不存在的行。
要解決此問題,首先需要識別孤立記錄。您可以使用下列查詢來檢索這些記錄:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
識別出孤立記錄後,您可以將它們從 sourcecodes_tags 表中刪除。這將使您能夠成功新增外鍵約束。
透過強制執行外鍵約束來確保資料庫表中的參考完整性非常重要。這些約束可以防止資料不一致並維護表之間的關係。透過解決孤立記錄,您可以解決錯誤 1452 並在資料庫表之間建立正確的關係。
以上是為什麼 MySQL 會拋出「無法新增或更新子行:外鍵約束失敗」(錯誤 1452)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!