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

Hen*_*kka 36 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;
Run Code Online (Sandbox Code Playgroud)

alter命令:

ALTER TABLE categories DROP COLUMN assets_id;
Run Code Online (Sandbox Code Playgroud)

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

Qua*_*noi 68

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

最有可能的是 categories_ibfk_1

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

ALTER TABLE categories DROP FOREIGN KEY categories_ibfk_1;
ALTER TABLE categories DROP COLUMN assets_id;
Run Code Online (Sandbox Code Playgroud)

  • @Henkka:我很高兴.请将答案标记为已接受(并针对您提出的其他问题执行此操作),这将鼓励人们为您提供更多帮助. (2认同)