MySQL - 无法创建和ENUM列

时间:2015-08-17 15:25:35

标签: mysql enums

在MySQL 5.1.73上,我创建了一个带有Enum列的表,如下所示:

create table IF NOT EXISTS rollover_profile 
(
    rollover_profile_id BIGINT(20) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    max_period INT(10) NOT NULL, 
    percentage INT(10) NOT NULL, 
    type VARCHAR(10) NOT NULL, 
    description VARCHAR(1024) NOT NULL,
    logical_delete_yn ENUM('Y','N') NOT NULL DEFAULT 'N',
    published_yn ENUM('Y','N') NOT NULL DEFAULT 'N'
);

但是当我检查表格logical_delete_yn时,published_yn被定义为ENUM('','')

我尝试了另一台MySQL服务器(版本5.0.77),似乎没问题。

是否有一些MySQL选项错误?

1 个答案:

答案 0 :(得分:0)

原来,新服务器上的字符集已更改为UCS2。将其更改为UTF8解决了这个问题。

奇怪的是将查询更改为

create table IF NOT EXISTS rollover_profile 
(
    rollover_profile_id BIGINT(20) PRIMARY KEY NOT NULL AUTO_INCREMENT, 
    max_period INT(10) NOT NULL, 
    percentage INT(10) NOT NULL, 
    type VARCHAR(10) NOT NULL, 
    description VARCHAR(1024) NOT NULL,
    logical_delete_yn ENUM('Y','N') NOT NULL DEFAULT 'N',
    published_yn ENUM('Y','N') NOT NULL DEFAULT 'N'
);

或两个ENUM不具备相同值的任何内容在UCS2上都能正常工作。