mysql不讓刪外鍵是因為在建立外鍵後,會自動建立一個同名的索引,而在刪除外鍵時,這個同名索引如果沒被刪,則mysql認為外鍵仍然存在,那麼mysql會在show keys指令裡繼續顯示外鍵。
有時候我們無法刪除mysql外鍵,該怎麼辦呢?以下就跟大家介紹mysql為什麼不讓刪外鍵以及解決方法,希望對需要的朋友有幫助!
1.MYSQL在建外鍵後,會自動建立一個同名的索引
2.而刪除外鍵的時候,這個同名索引如果沒被刪,則MYSQL認為外鍵仍然存在---MYSQL會在show keys指令裡繼續顯示外鍵,當你drop table時,MYSQL也會繼續提示你"a foreign key constraint fails"即外鍵約束失敗
#3.自然,當你再想刪除在show keys裡看見的外鍵的時候,會報1025錯誤,這確實如網上說的,外鍵名錯誤,因為實際上外鍵已經不存在了.但可惜的是無論從show keys還是其他表格操作你都能看到外鍵仍然是存在的,這就誤導了你的眼睛
#解決方法:
#1.先刪除索引
mysql> show index from tableName; mysql> alter table tableName drop index FKxxxxxxxxxxxxxx;
2.再刪除外鍵
mysql> show keys from tableName; mysql> alter table tableName drop foreign key FKxxxxxxxxxxxxxx;
如果不行,可以嘗試先刪除外鍵,再刪除索引,或重新連接資料庫。
相關推薦:《MySQL教學》
以上是mysql為什麼不讓刪外鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!