码迷,mamicode.com
首页 > 其他好文 > 详细

CHAR 详解

时间:2016-06-26 18:06:22      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

CHAR(20):20指的是表中的a字段能存储的最大字符个数

 

CREATE TABLE `a` (
`a` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

mysql> insert into a select "aaaaaaaaaaaaaaaaaaaaa";                      //21个a
ERROR 1406 (22001): Data too long for column a at row 1

 

mysql> insert into a select "aaaaaaaaaaaaaaaaaaa";                      //20个a
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0

 

mysql> insert into a select "我我我我我我我我我我我我我我我我我我我我";    //20个我
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0

 

mysql> insert into a select "我我我我我我我我我我我我我我我我我我我我我"; //21个我
ERROR 1406 (22001): Data too long for column a at row 1

 

mysql> insert into a select "我我我我我我我我我我我我我我我我我我我1"; //19个我+1个字符"1“=20个字符
Query OK, 1 row affected (0.06 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into a select "我我我我我我我我我我我我我我我我我我我11";//19个我+2个字符"1“=21个字符
ERROR 1406 (22001): Data too long for column a at row 1 

 

char 存储极限

 表为utf8字符集:

mysql> create table a1( a char(255));
Query OK, 0 rows affected (0.33 sec)

mysql> create table a11( a char(256));
ERROR 1074 (42000): Column length too big for column a (max = 255); use BLOB or TEXT instead
mysql> insert into a1 select repeat("a",255); Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> insert into a1 select repeat("a",256); ERROR 1406 (22001): Data too long for column a at row 1

mysql> insert into a1 select repeat("",256); ERROR 1406 (22001): Data too long for column a at row 1

mysql> insert into a1 select repeat("",255); Query OK, 1 row affected (0.11 sec) Records: 1 Duplicates: 0 Warnings: 0

mysql> select length(a) from a1;
+-----------+
| length(a) |
+-----------+
| 255 |
| 765 |
+-----------+
2 rows in set (0.00 sec)

 

 

CHAR 详解

标签:

原文地址:http://www.cnblogs.com/zengkefu/p/5618160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!