1.MYSQL在建外键后,会自动建一个同名的索引
2.而删除外键的时候,这个同名索引如果没被删,则MYSQL认为外键
所以你删除了外键,再查询,因为有同名索引在,因此还能看到,
如果再执行一次删除同名索引的存在,再查询外键,就看不到外键了
具体情况请参看以下文章:
回答2:
去除外键约束:
1.先使用show create table 表名; 找到外键约束名
2.再使用alter table drop foreign key
将外键去除掉后,使用desc查看表的结构,依旧可以看见外键的标记(MUL),
是因为设置外键时会创建一个索引,检查到索引还在,依旧会有外键标记(MUL)。
可以先使用show index from 表名 查看表中索引
然后使用drop index 索引名称 on 表名
删除掉索引就好了