首頁  >  文章  >  資料庫  >  為什麼無法在 MySQL 中加入外鍵約束?

為什麼無法在 MySQL 中加入外鍵約束?

DDD
DDD原創
2024-10-27 00:29:30173瀏覽

 Why Can't I Add a Foreign Key Constraint in MySQL?

MySQL 外鍵約束錯誤:深入探究原因

當嘗試在MySQL 中建立具有外鍵約束的表時,您可能會遇到以下情況:遇到神秘錯誤:「無法新增外鍵約束。」此錯誤可能會令人困惑,特別是如果您已確保引用的表中存在主鍵。

要找出此錯誤的原因,請執行以下命令:

SHOW ENGINE INNODB STATUS;

此命令顯示有關 InnoDB 引擎的詳細信息,包括外鍵約束及其錯誤。

此錯誤最常見的原因之一是引用欄位與外鍵欄位不符。它們必須在以下方面進行配對:

  • 引擎:兩個欄位必須使用相同的引擎,例如 InnoDB。
  • 資料型態: 資料型別和長度必須相同。例如,兩個欄位都必須是 VARCHAR(20) 或 INT(10) UNSIGNED。
  • 排序規則: 排序規則(例如 utf8)必須相同。
  • 唯一:外鍵應該引用引用表中唯一的欄位(通常是主鍵)。

另一個潛在原因是為外鍵,即使引用表中的某些欄位不為空。為了避免此錯誤,請確保外鍵約束中涉及的所有欄位都不為空。

請記住,雖然可以使用「setforeign_key_checks=0」暫時停用外鍵檢查,但這應該只針對特定偵錯目的。始終確保啟用外鍵約束以維護資料庫中的資料完整性。

以上是為什麼無法在 MySQL 中加入外鍵約束?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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