首頁  >  文章  >  資料庫  >  為什麼我在 MySQL 中收到「無法新增外鍵約束」錯誤?

為什麼我在 MySQL 中收到「無法新增外鍵約束」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 17:44:29313瀏覽

Why Am I Getting the

外鍵約束錯誤:了解原因和解決方案

問題涉及在MySQL 中建立課程表時遇到的錯誤:

ERROR 1215 (HY000): Cannot add foreign key constraint

此錯誤表示SQL 語句中指定的外鍵約束存在問題。外鍵約束確保一個表(例如,課程)的外鍵列中的資料引用另一個表(例如,部門)的主鍵列中的現有資料。

解決此錯誤並成功建立課程表,必須遵循以下準則:

  • 匹配引擎、資料類型和排序規則:

      匹配引擎、資料類型和排序規則:
    • 兩者都引用部門表中的欄位(dept_name)和課程表中的外鍵欄位(dept_name)必須具有相同的引擎,例如InnoDB。
    • 欄位必須具有相同的資料類型,包括長度。例如,VARCHAR(20) 或 INT(10) UNSIGNED.
  • 指定字元集編碼的排序規則也應該匹配。通常使用utf8。
    • 引用欄位的唯一性:
  • 外鍵(dept_name)引用的欄位在部門表中)必須是唯一的。這確保了課程表中的每一行都可以正確引用部門表中的行。
    • NOT NULL 限制:
  • 如果您在外鍵約束中指定了SET NULL 選項,請確保所涉及的列均未定義為NOT NULL。

遵循這些準則,您可以避免「無法添加外鍵約束」錯誤,並在課程表和系表之間建立適當的引用完整性。

附加說明:

停用外鍵使用 SET FOREIGN_KEY_CHECKS=0 進行檢查可能會允許您建立具有錯誤約束的表,但不建議這樣做。此設定可能會導致資料不一致和資料庫損壞。

以上是為什麼我在 MySQL 中收到「無法新增外鍵約束」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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