gpt4 book ai didi

mariadb - 尝试从表中删除 X 时,表中不存在键列 X

转载 作者:行者123 更新时间:2023-12-02 01:26:15 27 4
gpt4 key购买 nike

我需要一些帮助。我正在尝试在新的 docker 实例上运行一些迁移脚本(旧的和本地的工作正常)。 Mariadb,Innodb 引擎。

我有这样的迁移:

ALTER TABLE userinfo DROP COLUMN barcode

这给了我错误:StatementEnd 错误代码:1072。表中不存在键列“条形码”

该专栏存在!这是我的显示创建表:

CREATE TABLE userinfo (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
barcode varchar(45) NOT NULL,
store_id int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY store_id_barcode_UNIQUE (`store_id`,`barcode`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

我尝试了类似 ALTER TABLE userinfo ADD KEY "barcode"("barcode") 的操作,但 DROP 语句仍然不起作用。

附注我从 CREATE 语句中删除了很多列,否则该线程将太长而无法阅读。

最佳答案

来自ALTER TABLE/DROP COLUMN :

MariaDB starting with 10.2.8
Dropping a column that is part of amulti-column UNIQUE constraint is not permitted...

首先,删除 barcode 所属的唯一键,然后您就可以删除它:

ALTER TABLE userinfo DROP KEY store_id_barcode_UNIQUE;
ALTER TABLE userinfo DROP COLUMN barcode;

请参阅demo .

关于mariadb - 尝试从表中删除 X 时,表中不存在键列 X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74581597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com