解决mysql执行删除表中外键的语句,外键却仍然存在的问题
作者:互联网
笔者最近在学习尚硅谷的数据库课程时,又遇到了一个奇怪的小问题,但是老师在网课里却没有发现并解释如何去解决:
- 使用 `alter table` 语句删除外键约束:
alter table stuinfo drop foreign key fk_stuinfo_major;
Terminal显示语句执行成功:
- 但是当使用 `show index` 语句再次查看索引时却发现依然存在:
show index from stuinfo;
原因是为什么呢?笔者经过搜索和阅读,找到了一种比较合理的解释:MYSQL在建外键后,会自动建一个同名的索引。而删除外键的时候,这个同名索引如果没被删,再查询就还能看到。如果再执行一次删除同名索引的存在,再查询外键,就看不到外键了。
alter table stuinfo drop index fk_stuinfo_major;
这时候再次查询就没有了!
在SQLyog里面查询也是一样的:
desc stuinfo;
参考链接:
https://blog.csdn.net/digitalkee/article/details/102595614
标签:语句,index,外键,索引,stuinfo,mysql,table 来源: https://blog.csdn.net/qq_31361913/article/details/115706077