MySQL 外鍵約束:避免Errno 150 錯誤
在MySQL 中建立一個外鍵引用其他表的表時,您可能會遇到錯誤號碼:150 錯誤。要解決此問題,遵循以下準則至關重要:
-
確保表順序: 在使用外鍵建立子表之前定義包含主鍵的父表參考。
-
啟用外鍵支援:父表和子表都應該支援外鍵約束,通常透過使用InnoDB 儲存引擎。
-
最左列鍵: 父表中所引用的欄位必須是鍵的最左列,最好是 PRIMARY KEY 或 UNIQUE KEY。
-
匹配主鍵順序: FK 定義必須與 PK 定義在列方面一致順序和資料型態。
-
正確的資料對齊:父表中的 PK 列和子表中的 FK 列在資料類型和排序規則方面必須相符。
-
現有數據相容性:如果子表有數據,請確保每個FK列值與父表中的對應值相符PK 列。
-
避免臨時表或分區表:不能在 TEMPORARY 或 PARTITIONED 表上定義外鍵約束。
-
可空列:如果使用 ON DELETE SET NULL 選項時,FK 欄位必須是可空。
-
唯一約束名稱:外鍵約束在整個模式中應該具有唯一的名稱以避免衝突。
-
從屬外鍵:如果格式錯誤的 FK 存在於引用父表中相同欄位的另一個表中,請在建立新 FK 之前確保一致性。使用以下查詢來識別有問題的 FK:
以上是使用外鍵約束時如何避免 MySQL Errno 150 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!