mysql - 无法删除索引列,错误 1025 (HY000) : Error on rename of . 。到..(错误号:150)

标签 mysql mysql-error-1025

我在删除已建立索引的列时遇到问题。我真的不明白发生了什么,因为删除索引通常没有问题。 当我尝试删除列或索引时,出现以下错误

ERROR 1025 (HY000): Error on rename of './db-name/#sql-135e_9ee6d2' to './db-name/table-name' (errno: 150)

如果我在同一列上创建新索引,我可以删除旧索引,但不能删除新索引(我猜它只是检查索引是否可用)。 你有没有遇到过这个问题,如果有的话,有什么建议我可以解决这个问题吗?

引擎:innoDB mysql 版本:Ver 14.12 Distrib 5.0.45,适用于使用 readline 5.0 的 redhat-linux-gnu (x86_64)

感谢您的帮助,如果您需要更多信息,请告诉我。

最佳答案

该索引上有外键关系,因此 InnoDB 会阻止删除该列以保持一致性。首先删除引用该列的所有外键。

This happens because ALTER TABLE really works by making a copy of the table, then renaming to move the old table out of the way and move the new table into its place. It is certainly one of the less meaningful error messages I’ve seen in MySQL.

http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

关于mysql - 无法删除索引列,错误 1025 (HY000) : Error on rename of . 。到..(错误号:150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915499/

相关文章:

mysql - 更改在mysql中具有外键约束的表主键

MySQL 删除索引时出错(errno 150)

php - 一个关于mysql select查询的问题!

php - 如何在codeigniter中回显用户上传的文件?

mysql - 从 mysql 字段中的 json 中提取数据

php - MySql 的 ID 值在 while 循环中丢失

mysql - 在 PHP/HTML 中回显一个数组中的多个图像

sql - 奇怪的mysql错误