今天遇到一个情况,GORM 根据 class 自动建表失败,且没有任何提示信息。
造成建表失败的原因是 varchar 类型字段的 maxSize*3 超过了 mysql varchar 字段最大字节数。
为什么要乘以3呢?因为 mysql 类型长度是按字节算,而varchar长度是按字符算的,所以 varchar(1) 实际占用的字节长度是3(如果数据库编码是 utf-8 的话)。
因为 mysql varchar 最大字节长度是 65535,因此 varchar 最大字符长度是 65535/