【发布时间】:2021-04-04 23:41:39
【问题描述】:
我有表 my_transitions,我正在尝试删除名为 myStage 的字段。
我正在使用这个命令:
alter table `my_transitions` drop `myStage`
我看到了这个错误:
Key column 'myStage' doesn't exist in table
但是当我使用此命令列出所有字段时:
describe my_transitions
我可以看到
id bigint(20) unsigned NO PRI NULL auto_increment
myStage varchar(255) NO MUL NULL
updated_at timestamp YES NULL
任何人都可以看到我是否做错了什么?
编辑:
如果我运行show create table my_transitions;,我会得到:
CREATE TABLE `my_transitions` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`myStage` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`myStage1` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_stage_combination` (`myStage`,`myStage1`),
KEY `my_transitions_myStage` (`myStage`),
KEY `my_transitions_myStage1` (`myStage1`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
【问题讨论】:
-
这能回答你的问题吗? Key column doesn't exist in table
-
不,它没有。我确实在表中有该字段:/
-
该错误在尝试错误定义外键时很常见,但在尝试删除列时则不然。我相信错误来自另一个语句,而不是您删除该列的更改表。
-
我直接在 db 中对上述 alter table 查询进行了测试,它来自那里
-
我已经测试过,一切看起来都不错。您使用的是哪个版本。我在 mariadb 10.2.8 中发现了这个问题,请参阅:jira.mariadb.org/browse/MDEV-13613 当字段是键的一部分时
标签: mariadb mariadb-10.5