首頁 >資料庫 >mysql教程 >mysql為什麼不讓刪外鍵?

mysql為什麼不讓刪外鍵?

藏色散人
藏色散人原創
2019-04-28 15:39:323362瀏覽

mysql不讓刪外鍵是因為在建立外鍵後,會自動建立一個同名的索引,而在刪除外鍵時,這個同名索引如果沒被刪,則mysql認為外鍵仍然存在,那麼mysql會在show keys指令裡繼續顯示外鍵。

mysql為什麼不讓刪外鍵?

有時候我們無法刪除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中文網其他相關文章!

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