我有一个名为enum列的表action.目前允许的值是:
act1,act2,act3,act4.我想要act3和act4被删除,我的表的当前状态不包含任何行act3或act4.
当我尝试使用新的值集修改列时,它会抛出错误
Data Truncated for column action.
请建议如何删除所需的值.
Flo*_*ain 10
使用ALTER TABLE添加枚举值是确定和描述MySQL文档.
但是,要删除枚举值,更好的选择是创建一个新列来执行更改.
ALTER TABLE your_table ADD new_action_column ENUM('act1', 'act2') ... ;
UPDATE your_table SET new_action_column = action;
ALTER TABLE your_table DROP action;
ALTER TABLE your_table CHANGE new_action_column action ENUM('act1', 'act2') ... ;
Run Code Online (Sandbox Code Playgroud)
编辑
顺便说说.使用ENUM不是最好的主意,你应该使用INT.
我建议你使用像这样的映射
+------+-----+
| ENUM | INT |
+======+=====+
| act1 | 0 |
+------+-----+
| act2 | 1 |
+------+-----+
Run Code Online (Sandbox Code Playgroud)