[英]MySQL Error when dropping index (errno 150)
我有丢弃外键索引的问题,我总是得到同样的错误
ALTER TABLE `comments` DROP INDEX `id_user`
哪个输出
1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704'
to './postuj_cz1/comments' (errno: 150)
另一个表上的id_user
是简单的主键索引。
我使用的是MySQL 5.0.85版本
还有其他原因。 例如,我有一个涉及两个独立外键列的唯一索引。 在删除唯一索引之前,我不得不删除有问题的外键。 (显然你可以在之后添加外键。)
INNODB:这可能就像删除Index之前删除Relation一样简单。
根据此链接 ,该错误与主键字段的定义有关。 该错误与外键索引无关。
检查COMMENTS
表的主键,以确保它没有UNSIGNED
关键字,而COMMENTS.id_user
外键具有UNSIGNED关键字。 此关键字导致问题 - 字段类型不一致。
要解决此问题,请将UNSIGNED
关键字添加到COMMENTS
表的主键定义中。 或者从外键定义中删除UNSIGNED
关键字...
索引是'user'表中的外键,所以首先尝试这个命令:
SHOW CREATE TABLE my_table
找到与外键索引对应的约束名称,
然后,尝试以下命令:
ALTER TABLE my_table DROP FOREIGN KEY FK_myconstraintcode
警告:如果您尝试使用外键名称删除外键,则会出错!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.