MySQL中的默认Enum值大小是多少

时间:2014-10-31 11:30:18

标签: java mysql hibernate

在MySQL表中为枚举类型字段插入新值时,我在第1行的列'manager'中截断了错误数据。

我不想修改枚举值大小,因为它需要在生产就绪系统上进行修改。但是我找不到Enum中值的默认大小。 (我已经检查了这个http://dev.mysql.com/doc/refman/5.6/en/enum.html

额外信息: 我的Enum定义 ENUM( '客户', 'taquatoa', 'API的客户端')

1 个答案:

答案 0 :(得分:0)

此错误不仅发生在插入值的大小高于规范(对于任何其他值类型)时,而且在插入与枚举规范不对应的值时也会发生。

我的错误是我没有注意到该文件没有更新api-client值。因此,当值不是枚举的一部分时,MySQL会抛出此错误。很简单。

同样为了回答这个问题,我发现默认的枚举值大小是由枚举声明中较大大小的值决定的,因此在更改表格和添加新枚举时会对其进行修改。

请注意,如果使用Hibernate,JPA或其他ORM并为字段定义特定长度,也可能发生此错误。