MySQL 中的外鍵約束錯誤:「錯誤 1452:無法新增或更新子行」
在向子表插入資料時,外鍵約束確保父表中引用的資料存在。但是,如果違反此約束,則會發生錯誤,如下面的查詢所示:
<code class="language-sql">INSERT INTO Ordrelinje (Ordre, Produkt, AntallBestilt) VALUES (100, 1, 5);</code>
理解錯誤
錯誤「錯誤 1452:無法新增或更新子行:外鍵約束失敗」表明,父表中沒有與指定外鍵值相符的行。在本例中,沒有 OrderID 為 100 的 Ordre。
解決問題
要解決此錯誤,您必須先確保父表中存在引用的資料:
<code class="language-sql">INSERT INTO Ordre (OrdreID, KundeID) VALUES (100, 200);</code>
一旦父表具有必要的數據,您就可以在不遇到外鍵約束錯誤的情況下向子表插入數據:
<code class="language-sql">INSERT INTO Ordrelinje (Ordre, Produkt, AntallBestilt) VALUES (100, 1, 5);</code>
外鍵關係
外鍵關係在表之間建立鏈接,確保資料完整性並防止資料操縱異常。子表包含一個引用父表中列的列,從而建立父子關係。
強制外鍵約束
預設資料庫設定通常強制執行外鍵約束。如果發生違規,資料庫將不允許資料操縱操作繼續進行。
以上是MySQL 外鍵約束錯誤 1452:如何修復「無法新增或更新子行」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!