帮助:ERROR 1025(HY000):重命名错误....(错误号码:150)

时间:2011-05-10 10:31:52

标签: mysql

当我尝试运行alter table命令删除列时,我收到此错误: ERROR 1025(HY000):重命名时出错...(错误号码:150)。

如果我理解正确,这是一个外键问题,但我不知道如何修复它。有人会这么善良并告诉我如何让它发挥作用。

用于创建表的代码:

CREATE TABLE categories(
cid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
assets_id INT NOT NULL,
cat_name VARCHAR(30) NOT NULL,
INDEX(assets_id),
FOREIGN KEY (assets_id) REFERENCES asset(aid) ON UPDATE CASCADE

)
ENGINE=INNODB DEFAULT CHARSET=utf8;

alter命令:

ALTER TABLE categories DROP COLUMN assets_id;

表格类别完全空白。因此,没有信息可以引发CASCADE限制。那么你能帮助我删除列assets_id需要什么样的魔法。谢谢。

2 个答案:

答案 0 :(得分:68)

使用SHOW CREATE TABLE categories显示约束名称。

最有可能是categories_ibfk_1

使用名称首先删除外键,然后使用列:

ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;

答案 1 :(得分:0)

对我来说问题是另一个问题:

该网站(意外)可供所有人访问。所以更新脚本多次启动。这导致竞争条件引发了这样的错误。

- >确保网站只被访问一次,直到每个脚本完成!