删除已编制索引的列时遇到问题。我真的不明白发生了什么,因为删除索引通常都没有问题。当我尝试删除列或索引时,我得到以下错误
ERROR 1025 (HY000): Error on rename of './db-name/#sql-135e_9ee6d2' to './db-name/table-name' (errno: 150)如果我在同一列上创建一个新的索引,我可以删除旧的索引,但不能删除新的索引(我猜它只是检查索引是否可用)。你们遇到过这个问题吗?如果有,有什么建议可以解决这个问题吗?
引擎: innoDB mysql版本:版本14.12 innoDB 5.0.45,适用于使用READLINE5.0的redhat-linux-gnu (x86_64)
谢谢你的帮助,如果你需要更多的信息,请让我知道。
发布于 2010-10-12 22:02:51
您在该索引上有一个外键关系,因此InnoDB会阻止删除该列以保持一致性。首先移除引用该列的所有外键。
之所以会发生这种情况,是因为ALTER table实际上是通过制作表的副本,然后重命名来移动旧表并将新表移动到其位置来实现的。这肯定是我在MySQL中看到的意义不大的错误消息之一。
http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/
发布于 2011-03-14 19:28:41
这是一个外键引用错误...
您可以使用以下语句进行检查以查看该表
显示引擎INNODB状态
https://stackoverflow.com/questions/3915499
复制相似问题