我在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)
有任何想法吗?外键东西?
如果您的表使用InnoDB引擎,通常会出现此错误。在这种情况下,您将必须删除外键,然后执行alter table并删除列。
但是棘手的部分是您不能使用列名删除外键,而必须找到用于为其索引的名称。为此,请发出以下选择:
SHOW CREATE TABLE区域;
这应该显示索引的名称,如下所示:
约束外region_ibfk_1键(country_id)参考 country(id)关于删除无作用更新无作用
region_ibfk_1
country_id
country
id
现在只需发出:
修改表区域丢弃外键 region_ibfk_1;
最后是:
更改表区域放置列country_id;
而且你很好走!