如何从mysql中的枚举中删除一个值?

时间:2013-05-30 07:01:48

标签: mysql database enums

我的表格中包含ENUM,其中包含3个值:onetwothree。 该表已包含数据,但目前尚未使用ENUMtwo,因此我想将其从ENUM中删除。结果只有ENUM,只有2个值:onethree

我可以使用ALTER TABLE语句并说出:

ALTER TABLE 'tablename' CHANGE 'enumname' ENUM('one', 'three');

4 个答案:

答案 0 :(得分:3)

枚举会保存为整数,因此enum="one"的所有行实际上等于1enum="two"2enum="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)

是的,你可以。试试你的测试环境,因为大桌子可能需要一段时间吗?