mysql為什么不讓刪外鍵?

mysql不讓刪外鍵是因為在創(chuàng)建外鍵后,會自動建一個同名的索引,而在刪除外鍵時,這個同名索引如果沒被刪,則mysql認為外鍵仍然存在,那么mysql會在show keys命令里繼續(xù)顯示外鍵。

mysql為什么不讓刪外鍵?

有時候我們無法刪除mysql外鍵,該怎么辦呢?下面就給大家介紹mysql為什么不讓刪外鍵以及解決辦法,希望對需要的朋友有所幫助!

1.MYSQL在建外鍵后,會自動建一個同名的索引

2.而刪除外鍵的時候,這個同名索引如果沒被刪,則MYSQL認為外鍵仍然存在—MYSQL會在show keys命令里繼續(xù)顯示外鍵,當你drop table時,MYSQL也會繼續(xù)提示你”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教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享