首頁 >資料庫 >mysql教程 >MySQL 錯誤 150 和 1005:為什麼我無法建立外鍵關係?

MySQL 錯誤 150 和 1005:為什麼我無法建立外鍵關係?

DDD
DDD原創
2024-11-26 13:37:10863瀏覽

MySQL Error 150 & 1005: Why Can't I Create Foreign Key Relationships?

MySql 外鍵錯誤150:一個令人費解的謎

當嘗試創建具有外鍵關係的「foo」和「bar 」表時,您遇到錯誤1005 (HY000) 並參考錯誤150。此錯誤可能會令人沮喪,讓您對根本原因感到困惑。

根據 MySQL 關於 FOREIGN KEY Constraints 的文檔,重新建立具有外鍵引用的已刪除表時會出現問題。該表必須透過具有匹配的列名稱和類型以及引用鍵上的索引來符合外鍵約束。如果不滿足這些條件,MySQL 將傳回錯誤 1005,並帶有基礎錯誤 150。

您的錯誤很可能是由於「foo」表未定義為 InnoDB 表所致。 MySQL 文件明確指出這兩個表都必須是 InnoDB 表且是非臨時表。

透過修改「foo」建表查詢來指定 InnoDB 引擎:

mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;

你應該能夠成功建立具有外鍵約束的「bar」表,解決錯誤150。

以上是MySQL 錯誤 150 和 1005:為什麼我無法建立外鍵關係?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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