我在删除外键索引时遇到问题,我总是遇到同样的错误
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 版
我在删除外键索引时遇到问题,我总是遇到同样的错误
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 :这可以像在删除索引之前删除关系一样简单。
根据此链接,错误与主键字段的定义有关。该错误与外键索引无关。
检查COMMENTS
表的主键以确保它没有UNSIGNED
关键字,COMMENTS.id_user
而外键具有 UNSIGNED 关键字。这个关键字导致了问题 - 字段类型不一致。
要解决此问题,请将UNSIGNED
关键字添加到表的主键定义COMMENTS
中。或者UNSIGNED
从外键定义中删除关键字...
该索引用于“用户”表上的外键,因此首先,尝试以下命令:
SHOW CREATE TABLE my_table
找到外键上索引对应的约束名称,
之后,尝试以下命令:
ALTER TABLE my_table DROP FOREIGN KEY FK_myconstraintcode
警告:如果您尝试使用外键名称删除外键,您将遇到错误!