Pik*_*ppa 2 alter-table mariadb
我需要一些帮助。我正在尝试在新的 docker 实例上运行一些迁移脚本(旧的和本地的工作正常)。Mariadb,Innodb 引擎。
我有这样的迁移:
ALTER TABLE userinfo DROP COLUMN barcode
Run Code Online (Sandbox Code Playgroud)
这给了我错误: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
Run Code Online (Sandbox Code Playgroud)
我尝试了类似的方法ALTER TABLE userinfo ADD KEY "barcode" ("barcode"),但 DROP 语句仍然不起作用。
PS 我从 CREATE 语句中删除了很多列,否则该线程将太长而无法阅读。
从更改表/删除列:
MariaDB 从 10.2.8 开始
不允许删除属于多列 UNIQUE 约束一部分的列...
首先,删除属于其中一部分的唯一键barcode,然后您就可以删除它:
ALTER TABLE userinfo DROP KEY store_id_barcode_UNIQUE;
ALTER TABLE userinfo DROP COLUMN barcode;
Run Code Online (Sandbox Code Playgroud)
请参阅演示。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |