美文网首页
mysql 字符串长度限制

mysql 字符串长度限制

作者: lz做过前端 | 来源:发表于2022-02-24 17:38 被阅读0次

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

相关文章

网友评论

      本文标题:mysql 字符串长度限制

      本文链接:https://www.haomeiwen.com/subject/pczzlrtx.html