使用InnoDB并删除未使用的外键的MySQL问题。外键引用另一个表的id。但是,我不需要这个领域。
我已经尝试删除fk索引,这不起作用 - 说它是在外键约束中需要的。并删除该字段,这给了我一个错误:
1025 - 将'./axis/#sql-ad8_1531'重命名为'./axis/Schedule'时出错(错误号码:150)
该表目前为空。没有引用此字段的表。关于如何摆脱这个的任何想法?除了创建一个新表?
如果我正确读取下面的错误,我就不能删除列,因为声明了fk索引。我不能删除索引,因为列存在。鸡肉和鸡肉蛋??
最新外国关键错误
111004 17:05:40表轴/ Schedule的外键约束出错:
表中没有包含索引的索引
列作为第一列,或者是数据类型
table与引用表中的表不匹配
或其中一个ON ... SET NULL列被声明为NOT NULL。约束:
,
约束“fk_Schedule_Grp”FOREIGN KEY(“idGrp”)REFERENCES“Grp”(“idGrp”)ON更新没有动作更新没有动作
InnoDB:重命名表axis
。到axis
。Schedule
失败了!
答案 0 :(得分:16)
您需要使用
ALTER TABLE table_name DROP FOREIGN KEY constraint_name
这里constraint_name
是约束的名称而不是索引。如果您不知道这是什么,您可以通过发出SHOW CREATE TABLE
来找到答案。它是在单词CONSTRAINT
之后显示的标识符。
编辑:从您添加到问题,看起来您需要发出
ALTER TABLE table_name DROP FOREIGN KEY fk_Schedule_Grp