您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關MySQL數據庫中建立外鍵失敗的原因有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
MySQL數據庫建立外鍵失敗的原因有哪些
1.兩個字段的類型或者大小不嚴格匹配,例如,如果一個是INT(10),那么外鍵也必須設置成INT(10),而不是INT(11)也不能是TINYINT.你得使用SHOW命令來查看字段的大小,因為一些查詢瀏覽器有時候把int(10)和int(11)都顯示為integer。另外,你還必須確定兩個字段是否一個為SIGNED,而另一個又是UNSIGNED,這兩字段必須嚴格地一致匹配,更多關于signed和unsigned的信息,請參閱:http://www.verysimple.com/blog/p=57。
2.你試圖引用的其中一個外鍵沒有建立起索引,或者不是一個primarykey,如果其中一個不是primarykey的,你必須為它創建一個索引。
3.外鍵的名字是一個已經存在的一個鍵值了,這個時候,你應該檢查你的數據庫以確保外健名字是唯一的,或者你在鍵名后面加上幾個隨機的字符以測試是否是這個原因。
4.其中一個或者兩個表是MyISAM引擎的表,若想要使用外鍵約束,必須是InnoDB引擎,(實際上,如果兩個表都是MyISAM引擎的,這個錯誤根本不會發生,但也不會產生外鍵),你可以通過查詢瀏覽器來設置表的引擎類型。
MySQL數據庫建立外鍵失敗的原因有哪些
5.你可能設置了ONDELETESETNULL,但是相關的鍵的字段又設置成了NOTSNULL值。你可能通過修改cascade的屬性值或者把字段屬性設置成allownull來搞定這個bug.
6.請確定你的Charset和Collate選項在表級和字段級上的一致。
7.你可能設置為外鍵設置了一個默認值,如default=0。
8.在這個關系里面,其中的一個字段是一個混合鍵值中的一個,它沒有自己獨立的索引,這時,你必須為它創建一個獨立的索引。
9.ALTER聲明中有語法錯誤。
看完上述內容,你們對MySQL數據庫中建立外鍵失敗的原因有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。