我的表格中包含ENUM
,其中包含3个值:one
,two
,three
。
该表已包含数据,但目前尚未使用ENUM
值two
,因此我想将其从ENUM
中删除。结果只有ENUM
,只有2个值:one
,three
。
我可以使用ALTER TABLE
语句并说出:
ALTER TABLE 'tablename' CHANGE 'enumname' ENUM('one', 'three');
答案 0 :(得分:3)
枚举会保存为整数,因此enum="one"
的所有行实际上等于1
,enum="two"
为2
,enum="tree"
为{{1} }。
似乎如果枚举名称匹配,MySQL正在尽一切可能改变这些值,所以你只需要确保没有'two'的行
http://sqlfiddle.com/#!2/ef76d/1
3
答案 1 :(得分:3)
试试这个: -
alter table tablename
change `columname` `columname` enum ('one', 'three');
工作正常。
答案 2 :(得分:1)
是的,你可以这样做。这是一个例子:
ALTER TABLE `database`.`tablename`
CHANGE `enumname` `enumname` ENUM('one','two')
CHARSET utf8 COLLATE utf8_general_ci NULL;
答案 3 :(得分:0)
是的,你可以。试试你的测试环境,因为大桌子可能需要一段时间吗?