MySQL错误丢弃索引时(错误150)(MySQL Error when dropping inde

2019-08-08 04:50发布

我有问题下降外键索引,我总是得到同样的错误

 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

Answer 1:

根据此链接 ,误差涉及主键字段的定义。 该错误是不是外键索引。

检查该主键COMMENTS表,以确保它不具有UNSIGNED关键字而COMMENTS.id_user外键有未签名的关键字。 此关键字是造成问题 - 不一致类型的字段。

要解决,在添加UNSIGNED关键字的主键定义COMMENTS表。 或删除UNSIGNED从外键定义关键字...



Answer 2:

还有其他的原因了。 比如我有涉及到两个独立的外键列的唯一索引。 我不得不放弃有问题的外键之前,我可以放下唯一索引。 (很显然,你可以添加外键回之后。)



Answer 3:

INNODB:这可能是因为删除索引之前删除的关系那样简单。



Answer 4:

该指数是对“用户”表的外键,所以在第一个,请尝试以下命令:

SHOW CREATE TABLE my_table

找到对应的指数外键约束的名字,

而在此之后,试试下面的命令:

ALTER TABLE my_table DROP FOREIGN KEY FK_myconstraintcode

警告:如果您尝试删除与外键名称外键,你将有一个错误!



文章来源: MySQL Error when dropping index (errno 150)