MySQL drop field; 外键错误150

Log*_*ner 5 mysql foreign-keys

使用InnoDB并删除未使用的外键的MySQL问题.外键引用另一个表的id.但是,我不需要这个领域.

我已经尝试删除fk索引,这不起作用 - 说它是在外键约束中需要的.并删除该字段,这给了我一个错误:

1025 - 将'./axis/#sql-ad8_1531'重命名为'./axis/Schedule'时出错(错误号:150)

该表目前是空的.没有引用此字段的表.关于如何摆脱这个的任何想法?除了创建一个新表?

如果我正确读取下面的错误,我不能删除列,因为声明了fk索引.我不能删除索引,因为列存在.鸡蛋??

最新的外键错误111004 17:05:40表轴/调度的外键约束出错:表中没有包含列作为第一列的索引,或者表中的数据类型与表中的数据类型不匹配在引用的表中或其中一个ON ... SET NULL列被声明为NOT NULL.约束:,CONSTRAINT"fk_Schedule_Grp"FOREIGN KEY("idGrp")REFERENCES"Grp"("idGrp")ON更新没有动作更新无动作InnoDB:重命名表axis.到axis.Schedule失败!

Ham*_*ite 16

你需要使用

ALTER TABLE table_name DROP FOREIGN KEY constraint_name
Run Code Online (Sandbox Code Playgroud)

constraint_name是约束的名称而不是索引.如果您不知道这是什么,您可以通过发出一个来找到答案SHOW CREATE TABLE.它是在单词后面出现的标识符CONSTRAINT.

编辑:从您添加到问题,看起来您需要发布

ALTER TABLE table_name DROP FOREIGN KEY fk_Schedule_Grp
Run Code Online (Sandbox Code Playgroud)