在我的名为“stocktakings”的表中,有一列来自类型enum,名为“status”“状态”包含以下字段:
'挂起'
'正在处理'
'失败'
'成功'
我要将值更改为:
'准备搬迁'
'搜索工具架位置'
'库存更新成功'
'库存更新失败'
'更新库存'
我尝试了以下命令:
ALTER TABLE `stocktakings` MODIFY `stocktakings.status`
`stocktakings.status` ENUM(
`ready_for_relocation`,
`search_shelf_location`,
`stock_update_succeeded`,
`stock_update_failed`,
`updating_stock`
);
没用。有什么想法吗?
1条答案
按热度按时间5f0d552i1#
不能只从列定义中删除旧的枚举值。否则,将出现无法修复的数据丢失(所有字段都可能变为空白)。这将是一个多步骤的过程:
向现有列定义添加新枚举值。此外,枚举值用单引号括起来(不是反引号)
现在,运行一个
Update
查询以相应地更新所有枚举值:现在,
Alter Table
并删除旧的枚举值。