Mysql 錯誤1452:由於外鍵約束,新增或更新子行失敗
嘗試新增外鍵時引用來源程式碼表時,出現錯誤:「Mysql 錯誤1452 -無法新增或更新子行:外鍵約束失敗。對應的主鍵值(id)。 MySQL 強制執行參考完整性,確保外鍵引用父表中的有效主鍵。
解決錯誤
要解決此錯誤,有必要識別和從 sourcecodes_tags 表中刪除孤立的 sourcecode_id 值。執行下列查詢以尋找遺失的主鍵值:
此查詢將傳回原始碼表中不存在的 sourcecode_id 值的清單。一旦確定,可以使用DELETE 語句刪除這些孤立值:
刪除孤立值後,重新執行ALTER TABLE 語句以新增外鍵:
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
這應該會成功建立外鍵:
DELETE FROM sourcecodes_tags WHERE sourcecode_id IN (SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL);
這應該會成功建立外鍵鍵約束,沒有任何錯誤。
以上是如何解決MySQL錯誤1452:外鍵約束失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!