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>
其他措施:
請記住,必須驗證是否滿足所有這些條件以確保成功建立外鍵約束。
以上是以下是一些標題選項,每個標題都強調文章的不同面向: 簡短和一般: * 為什麼MySQL無法加入外鍵約束? * 外鍵約束 E 故障排除的詳細內容。更多資訊請關注PHP中文網其他相關文章!