MySQL text类型出现报错 Data truncation: Data too long for column...
MySQL 5.7
数据库字段类型为:text
代码中限制了长度为50000
结果出现异常
结论:
MySQL5以上版本中
varchar类型的长度限制是以字符数为单位的,比如:“你好”是2个字符
text类型则是以字节数为单位的,这里我们的数据库字段编码为utf8mb4,每个中文字符占3个字节,所以“你好”是6个字节,我们可以通过如下方式查看当前值的字节数
也就是说,text类型的字段实际上只能保存 65535 / 3 = 21845 个中文字符! (MEDIUMTEXT 和 LONGTEXT 类型也是同理)
记住了吗???