数据库
首页 > 数据库> > MySQL中varchar(1)的解读(辟谣)

MySQL中varchar(1)的解读(辟谣)

作者:互联网

MySQL中varchar(1)的解读(辟谣)

网上有如下错误解读:

在mysql中,varchar(n)和char(n)表示n个字符。不管是中文还是英文,MySQL都可以存储n个字符,只是实际字节长度不同

也就是说,MySQL不会对超长字符报错,而是直接截断。char(2)和varchar(2)都可以存储两个汉字或两个英文字符

 

正确解读:

截断问题的解读:

 

具体代码示例如下(版本MySQL5.5):

mysql> create table test1(name varchar(1));

Query OK, 0 rows affected (0.66 sec)

mysql> insert into test1(name)values('t');

Query OK, 1 row affected (0.73 sec)

mysql> insert into test1(name) values('你');

ERROR 1406 (22001): Data too long for column 'name' at row 1

 

 

mysql> create table test2(name varchar(2));

Query OK, 0 rows affected (0.96 sec)

mysql> insert into test2(name) values('你');

Query OK, 1 row affected (0.16 sec)

mysql> insert into test2(name) values('中秋');

ERROR 1406 (22001): Data too long for column 'name' at row 1

标签:字符,varchar,name,insert,MySQL,mysql,辟谣
来源: https://www.cnblogs.com/zhangdezhang/p/16695991.html