删除索引时出现MySQL错误(错误150)

Jak*_*old 8 mysql sql mysql-error-1025

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

 ALTER TABLE `comments` DROP INDEX `id_user`  
Run Code Online (Sandbox Code Playgroud)

哪个输出

 1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704' 
 to './postuj_cz1/comments' (errno: 150) 
Run Code Online (Sandbox Code Playgroud)

id_user上其他表是简单主键索引.

我使用的是MySQL 5.0.85版本

Wil*_*ler 13

还有其他原因.例如,我有一个涉及两个独立外键列的唯一索引.在删除唯一索引之前,我不得不删除有问题的外键.(显然你可以在之后添加外键.)


sgl*_*ard 6

INNODB:这可能就像删除Index之前删除Relation一样简单.


OMG*_*ies 2

根据此链接,错误与主键字段的定义有关。该错误与外键索引无关。

检查表的主键COMMENTS以确保它没有关键字,UNSIGNED而外COMMENTS.id_user键具有 UNSIGNED 关键字。该关键字导致了问题 - 字段类型不一致。

要修复此问题,请将UNSIGNED关键字添加到表的主键定义中COMMENTSUNSIGNED或者从外键定义中删除关键字...