我需要一些帮助。我正在尝试运行一些迁移脚本在一个新的docker示例(旧的和本地工作正常)。Mariadb,Innodb引擎。
我有一个这样的迁移:
ALTER TABLE userinfo DROP COLUMN barcode
这就给了我一个错误:语句结束错误代码:1072.表中不存在键列"barcode"
该列存在!这是我的SHOW CREATE TABLE:
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语句仍然不起作用。
P.S. i从CREATE语句中删除了许多列,否则此线程将太长而无法读取。
1条答案
按热度按时间xpszyzbs1#
从更改表/删除列:
从10.2.8开始的MariaDB
不允许删除属于多列UNIQUE约束一部分的列...
首先,删除包含
barcode
的唯一键,然后就可以删除它了:请参阅demo。