您好,登錄后才能下訂單哦!
這篇文章主要講解了“mysql添加外鍵失敗如何解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mysql添加外鍵失敗如何解決”吧!
mysql添加外鍵失敗的解決辦法:1、檢查兩個字段的類型或者大小是否匹配并修改;2、為設置外鍵的字段建立起索引;3、檢查表的引擎類型,并修改為InnoDB引擎;4、檢查外健名字是否唯一并修改;5、通過修改cascade的屬性值或者把字段屬性設置成allow null等。
mysql外鍵創建失敗原因
首先,如果和外鍵相關的幾張表中已經插入了數據,可能導致外鍵插入的失敗
在MySQL中創建外鍵時,經常會遇到問題而失敗,這是因為Mysql中還有很多細節需要我們去留意,我自己總結并查閱資料后列出了以下幾種常見原因。
1. 兩個字段的類型或者大小不嚴格匹配。例如,如果一個是int(10),那么外鍵也必須設置成int(10),而不是int(11),也不能是tinyint。另外,你還必須確定兩個字段是否一個為 signed,而另一個又是unsigned(即:無符號),這兩字段必須嚴格地一致匹配。
2. 試圖設置外鍵的字段沒有建立起索引,或者不是一個primary key(主鍵)。如果其中一個不是primary key的話,你必須先為它創建一個索引。
3. 其中一個或者兩個表是MyISAM引擎的表。若想要使用外鍵約束,表必須是InnoDB引擎(實際上,如果兩個表都是MyISAM 引擎的,這個錯誤根本不會發生,但也不會產生外鍵,只會建立索引)你需要檢查表的引擎類型。
4. 外鍵的名字不能重復。你應該檢查你的數據庫以確保外健名字是唯一的,或者你在鍵名后面加上幾個隨機的字符以測試是否是這個原因。
5. 你可能設置了ON DELETE SET NULL,但是相關的鍵的字段又設置成了NOTS NULL值。你可能通過修改cascade的屬性值或者把字段屬性設置成allow null來解決。
6. 請確定你的Charset和Collate選項在表級和字段級上的一致。
7. 你可能設置為外鍵設置了一個默認值,如default=0。
8. ALTER聲明中有語法錯誤
當出現錯誤時,仔細檢查數據庫表和字段的設計。我更建議大家盡量使用工具來設計和創建數據庫,這樣能減少出錯的概率。
感謝各位的閱讀,以上就是“mysql添加外鍵失敗如何解決”的內容了,經過本文的學習后,相信大家對mysql添加外鍵失敗如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。