我不确定是否无法更改 ENUM() 列表,因此我进行了测试。在 MySQL v5.1.58 中,我制作了一个测试 InnoDB 表,其中包含一个名为 ENUM('yes', 'no') 的名为 'bool' 的字段。
然后我执行...
ALTER TABLE `test`
CHANGE `bool` `bool` ENUM( 'yes', 'no', 'maybe' )
CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
Run Code Online (Sandbox Code Playgroud)
...它奏效了。
我做错了什么吗?它依赖于数据库引擎吗?为什么每个人都说更改 ENUM() 列表是不可能的?例如。这里http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/