帮助:错误1025(HY000):重命名错误…(错误:150)

当我尝试运行alter table命令删除列时出现此错误:错误1025(HY000):错误重命名….(错误:150)。

如果我理解正确,这是一个外键问题,但我不知道如何解决这个问题。 会有人这样善良,告诉我如何得到它的工作。

用于创build表的代码:

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。 谢谢。

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

最有可能的将是categories_ibfk_1

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

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

对我来说,问题是另一回事:

该网站(意外)为每个人访问。 所以更新脚本是多次启动。 这引起了像这样的错误的竞争条件。

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