mysql为何不让删外键?
发布时间:08/01 来源:未知 浏览:
关键词:
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;
要是不过关,可以尝试 先删除外键,再删除索引,或者从新连贯数据库。