我在mysql中尝试过:
mysql> alter table region drop column country_id;
结果是这样的:
ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to
'./product/region' (errno: 150)
有什么想法吗?外键的东西?
发布于 2008-10-07 17:24:10
这确实是一个外键错误,你可以使用perror来找出:
shell$ perror 150
MySQL error code 150: Foreign key constraint is incorrectly formed
要查找有关失败原因的更多详细信息,可以使用SHOW ENGINE INNODB STATUS
并查找最新的外键错误部分,其中包含有关错误原因的详细信息。
在您的示例中,最有可能的原因是引用了country_id列。
发布于 2009-10-22 16:40:08
尝试删除不存在的外键时也会出现此错误。因此,在删除外键时,一定要确保它们确实存在。
如果外键确实存在,并且您仍然收到此错误,请尝试以下操作:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
//将外键放在这里!
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
这对我来说总是有用的:)
发布于 2013-02-21 16:05:33
只需在drop语句中使用'KEY‘而不是'FOREIGN KEY’运行alter table查询。我希望这将有助于解决这个问题,并将删除外键约束,您可以更改表列和删除表。
ALTER TABLE slide_image_sub DROP KEY FK_slide_image_sub;
这里是DROP KEY
,而不是DROP FOREIGN KEY
,
希望这能有所帮助。
谢谢
https://stackoverflow.com/questions/160233
复制相似问题