首頁  >  文章  >  資料庫  >  以下是一些標題選項,每個標題都強調文章的不同面向: 簡短和一般: * 為什麼MySQL無法加入外鍵約束? * 外鍵約束 E 故障排除

以下是一些標題選項,每個標題都強調文章的不同面向: 簡短和一般: * 為什麼MySQL無法加入外鍵約束? * 外鍵約束 E 故障排除

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-26 16:57:03881瀏覽

Here are a few title options, each emphasizing a different aspect of the article:

Short and General:

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

More Specific:

* MySQL Foreign Key Con

MySQL 中的外鍵約束錯誤:根本原因與解

錯誤「ERROR 1215 (HY000): 無法新增外鍵約束」在MySQL 中定義兩個表之間的外鍵引用時會出現此問題。要解決此問題,請確保引用欄位和外鍵欄位都滿足特定條件至關重要:

引擎相容性:
兩個欄位都必須駐留在具有相同的引擎,通常是InnoDB。

資料類型和長度:
欄位的資料類型和長度必須相同。例如,如果引用的欄位是 VARCHAR(20),則外鍵欄位也應該是 VARCHAR(20)。

排序規則:
欄位的排序規則應該要符合例如,utf8。

唯一性:
父表中引用的欄位應該是唯一的或聲明為 PRIMARY KEY,以確保子表中的每一行都有有效的引用。

NULL 限制:
如果外鍵欄位允許 NULL 值,則引用的欄位也應該允許 NULL 值。

獨佔執行:
某些場景可能需要專門執行外鍵建立語句,而無需任何其他並發查詢。這可以透過啟動事務來實現,例如:

<code class="sql">BEGIN;
CREATE TABLE course ( ... );
COMMIT;</code>

其他措施:

  • 檢查InnoDB 狀態:獲取更具體的錯誤詳細信息,執行SHOW ENGINE INNODB STATUS;。
  • 停用外鍵檢查: 使用 SET FOREIGN_KEY_CHECKS=0 暫時停用外鍵檢查;允許建立表,但如果不符合外鍵約束,資料插入仍然可能失敗。
  • 使用 ON DELETE CASCADE / ON UPDATE CASCADE: 使用這些選項,相關行當父表中引用的欄位被修改時,子表會自動刪除或更新。

請記住,必須驗證是否滿足所有這些條件以確保成功建立外鍵約束。

以上是以下是一些標題選項,每個標題都強調文章的不同面向: 簡短和一般: * 為什麼MySQL無法加入外鍵約束? * 外鍵約束 E 故障排除的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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