删除索引时出现MySQL错误(错误号150)
我在删除外键索引时遇到了问题,我总是遇到同样的错误删除索引时出现MySQL错误(错误号150),mysql,sql,mysql-error-1025,Mysql,Sql,Mysql Error 1025,我在删除外键索引时遇到了问题,我总是遇到同样的错误 ALTER TABLE `comments` DROP INDEX `id_user` 哪个输出 1025 - Error on rename of './postuj_cz1/#sql-d834_a0c704' to './postuj_cz1/comments' (errno: 150) 另一个表上的id\u 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\u user
是简单的主键索引
我使用的是MySQL版本5.0.85,根据,错误与主键字段的定义有关。错误与外键索引无关
检查COMMENTS
表的主键,确保它没有未签名的关键字,而COMMENTS.id\u user
外键有未签名的关键字。此关键字导致问题-字段类型不一致
要修复此问题,请将UNSIGNED
关键字添加到COMMENTS
表的主键定义中。或者从外键定义中删除未签名的关键字…还有其他原因。例如,我有一个包含两个独立外键列的唯一索引。在删除唯一索引之前,我必须删除有问题的外键。(很明显,您可以在之后再添加外键。)INNODB:这可能很简单,只需在删除索引之前删除关系即可。索引用于“用户”表上的外键,因此
首先,尝试以下命令:
SHOW CREATE TABLE my_table
查找与外键上的索引对应的约束的名称
然后,尝试以下命令:
ALTER TABLE my_table DROP FOREIGN KEY FK_myconstraintcode
警告:如果您试图删除具有外键名称的外键,则将出现错误 首先尝试删除表中的所有外键。事实上,我没有表中的任何fk谢谢,这就是我的问题所在。确切地说,删除唯一索引导致我的外键引用了一个不可能的“非唯一”字段。在我的情况下,该关系锁定了所有内容。所以,删除关系,接下来删除索引,接下来创建新索引,然后恢复关系这对我来说是一个很好的解决方案,似乎foreing键不能与drop index语句一起删除。