数据库
首页 > 数据库> > 解决mysql执行删除表中外键的语句,外键却仍然存在的问题

解决mysql执行删除表中外键的语句,外键却仍然存在的问题

作者:互联网

笔者最近在学习尚硅谷的数据库课程时,又遇到了一个奇怪的小问题,但是老师在网课里却没有发现并解释如何去解决:

  1. 使用 `alter table` 语句删除外键约束:
    alter table stuinfo drop foreign key fk_stuinfo_major;

    Terminal显示语句执行成功:

  2. 但是当使用 `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