MySQL 下拉字段;外键错误号 150
Posted
技术标签:
【中文标题】MySQL 下拉字段;外键错误号 150【英文标题】:MySQL drop field; foreign key errorno 150 【发布时间】:2011-12-01 02:28:09 【问题描述】:mysql 使用 InnoDB 并删除未使用的外键时出现问题。外键引用另一个表的 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 DELETE NO ACTION ON UPDATE NO ACTION
InnoDB:重命名表axis
。到axis
.Schedule
失败!
【问题讨论】:
【参考方案1】:你需要使用
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
【讨论】:
你太棒了,我相信我把索引和约束混淆了。这就像摆脱这三个人的魅力一样。谢谢!以上是关于MySQL 下拉字段;外键错误号 150的主要内容,如果未能解决你的问题,请参考以下文章
使用 mysql 工作台创建 CHAR 类型的外键时出错:错误 1005:无法创建表(错误号:150)
MySQL创建表:错误1005 errno:150“外键约束形成错误”