SQL无法识别unicode枚举值

时间:2015-06-27 19:31:44

标签: mysql sql

我有一个表,它使用带有特殊字符的枚举:

create table test(test enum('Não informado',
'A selecionar',
'Em contratação',
'Ação Preparatória',
'Em licitação de obra',
'Em licitação de projeto',
'Em obras',
'Em execução',
'Concluído',
'Em operação'))

我正在尝试添加一行:

insert into test(test)
values('Concluído')

但是SQL给了我错误

Error Code: 1265. Data truncated for column 'test' at row 1

我做错了什么? 我该如何解决这个问题?

我正在运行MySQL服务器版本5.6.23-log MySQL社区

1 个答案:

答案 0 :(得分:1)

您必须在枚举的定义中使用utf8字符集和排序规则,例如:

create table test(test enum('Não informado',
                            'A selecionar',
                            'Em contratação',
                            'Ação Preparatória',
                            'Em licitação de obra',
                            'Em licitação de projeto',
                            'Em obras',
                            'Em execução',
                            'Concluído',
                            'Em operação') 
                       CHARACTER SET utf8 COLLATE utf8_unicode_ci);

Demo here