mysql 字符串长度限制

Data truncation: Data too long for column 'xxx' at row 1

对于 mysql 的 varchar 类型经常在插入或者更新的时候遇到这个错误,要想避免这个问题,需要对一些概念有所了解

  • varchar 后面数字表示允许插入的字符长度是多少,字符可以是中文、英文、符号等等,任何一个表示一个字符。所以 varchar(10)允许插入至多10个中文。

  • length() 函数表示的是字节的长度,一个字符换算成多少个字节是由该字段的字符编码所决定,所以已经不能再增加字符的字符串插入表字段后,使用length()函数显示的长度可能不一样,如果是 varchar(10) 就会出现 10 ~ 30之间的任何值

  • 使用 JDBC 编程插入时也是用的字符,所以 varchar(10) 的字段理论上允许你插入10个中文字

  • 插入测试

create table test_length (
    cont varchar(10)
);

-- success
insert into test_length (cont) values ('我我喔喔喔喔喔喔我我');
insert into test_length (cont) values ('我我喔喔喔喔喔喔我@');
insert into test_length (cont) values ('222');
insert into test_length (cont) values ('1111111111');

-- failed
insert into test_length (cont) values ('我我喔喔喔喔喔喔我我1');
insert into test_length (cont) values ('11111111112');
  • length函数
select length(cont) from test_length;
result
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容