首頁 >資料庫 >mysql教程 >MySQL 外鍵約束錯誤 1452:如何修復「無法新增或更新子行」?

MySQL 外鍵約束錯誤 1452:如何修復「無法新增或更新子行」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-21 05:07:08331瀏覽

MySQL Foreign Key Constraint Error 1452: How to Fix

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn