我正在尝试运行alter table命令来删除列:
ERROR 1025 (HY000): Error on rename of .... (errno: 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;
表类别完全为空。因此,没有设置级联限制的信息。
如何删除assets_id列?
2条答案
按热度按时间smtd7mpg1#
使用
SHOW CREATE TABLE categories
显示约束的名称。最有可能是
categories_ibfk_1
使用名称首先删除外键,然后删除列:
idfiyjo82#
对我来说,问题是另一个:
该网站是(偶然)为每个人访问。所以更新脚本启动了多次。这导致了引发如下错误的争用条件。
->确保网站只被访问一次,直到每个脚本完成!