因为涉及到外键,所以需要先删除外键约束,再删除外键列。##
官方解释文档:http://docs.oracle.com/cd/E19957-01/mysql-refman-5.5/storage-engines.html
文档的一个章节13.7.8.6. Better Error Handling when Dropping Indexes里面提到是说这个错误是mysql的一个BUG,现在已经解决了。ERROR 1553 (HY000): Cannot drop index 'fooIdx': needed in a foreign key constraint
下面是一个实例:
create table goodsType(id int(10) unsigned not null auto_increment,name varchar(45) not null,primary key(id));
create table goods(id int(10) unsigned not null auto_increment,typeId int(10)unsigned not null,
name varchar(50) not null,introduce text(16) not null,price float not null,primary key(id),foreign key(typeId) references goodsType(id));
输入命令:alter table goods drop typeId时报错
解决方案:先删除约束条件,再删除列
约束条件我没有取名字,可以用show create table goods命令查看系统生成的约束名
命令:
alter table goods drop foreign key [完整性约束名];
alter table goods drop typeId;