在MySQL表中为枚举类型字段插入新值时,我在第1行的列'manager'中截断了错误数据。
我不想修改枚举值大小,因为它需要在生产就绪系统上进行修改。但是我找不到Enum中值的默认大小。 (我已经检查了这个http://dev.mysql.com/doc/refman/5.6/en/enum.html)
额外信息: 我的Enum定义 ENUM( '客户', 'taquatoa', 'API的客户端')
答案 0 :(得分:0)
此错误不仅发生在插入值的大小高于规范(对于任何其他值类型)时,而且在插入与枚举规范不对应的值时也会发生。
我的错误是我没有注意到该文件没有更新api-client值。因此,当值不是枚举的一部分时,MySQL会抛出此错误。很简单。
同样为了回答这个问题,我发现默认的枚举值大小是由枚举声明中较大大小的值决定的,因此在更改表格和添加新枚举时会对其进行修改。
请注意,如果使用Hibernate,JPA或其他ORM并为字段定义特定长度,也可能发生此错误。