Mysql中varchar自动截断插入字符

zmisgod 发布于 2018-8-17 11:14:22 阅读 96 评论 0

今天发现一个有趣的问题:

在一个数据表中,内容content类型的字段为varchar(255),但是插入content的长度超过了255个字节,我以为会报错,但是如果会报插入的错误,老早就会返回给我们这个bug了,但是线上貌似没有这个问题。

那么我们来测试下效果。准备一条数据,字符超过255个字节。其中你说我这个这5个字符有50对,加上你说我这0这5个字符组成255个字符,后面再加上123456789组成插入的字符

image title

结果没有报错!!!

到数据库里看到

image title

字符被截断了,取出字符,正好是255个字节,正好截取到了0这个字符中。

所以mysql进行插入的时候会将插入的数据按照数据表结构中进行相应的处理,如果超过了相应的阈值就进行截取操作。