加入收藏 | 设为首页 | 会员中心 | 我要投稿 荆州站长网 (https://www.0716zz.cn/)- 图像处理、语音技术、媒体智能、运维、低代码!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中怎么测试varchar类别最大长度

发布时间:2022-01-21 12:53:34 所属栏目:MySql教程 来源:互联网
导读:本篇文章为大家展示了mysql中怎么测试varchar类型最大长度,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 1.先看字符集为latin1时,每个字符应该是占据一个byte mysql create table test(a varchar(65535)) e
      本篇文章为大家展示了mysql中怎么测试varchar类型最大长度,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
 
1.先看字符集为latin1时,每个字符应该是占据一个byte
mysql> create table test(a varchar(65535)) engine=innodb charset=latin1;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
mysql> create table test(a varchar(65533)) engine=innodb charset=latin1;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
mysql> create table test(a varchar(65532)) engine=innodb charset=latin1;
Query OK, 0 rows affected (0.01 sec)
 
2.再看字符集为GBK时,每个字符应该占据2个byte
mysql> drop table test;
Query OK, 0 rows affected (0.00 sec)
 
mysql> create table test(a varchar(32767)) engine=innodb charset=gbk;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
mysql> create table test(a varchar(32766)) engine=innodb charset=gbk;
Query OK, 0 rows affected (0.00 sec)
 
3.当字符集为UTF8时,每个字符占据了3个byte
mysql> drop table test;
Query OK, 0 rows affected (0.00 sec)
 
mysql> create table test(a varchar(65535)) engine=innodb charset=utf8;
ERROR 1074 (42000): Column length too big for column 'a' (max = 21845); use BLOB or TEXT instead
 
mysql> create table test(a varchar(21845)) engine=innodb charset=utf8;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
mysql> create table test(a varchar(21844)) engine=innodb charset=utf8;
Query OK, 0 rows affected (0.00 sec)
 
 
最后,如果表中所有varchar类型的列长度总和超过了65535,创建表时也会报错
mysql> drop table test;
Query OK, 0 rows affected (0.00 sec)
 
mysql> create table test(a varchar(22000),b varchar(22000),c varchar(22000)) charset=latin1 engine=innodb;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
上述内容就是mysql中怎么测试varchar类型最大长度,你们学到知识或技能了吗?
mysql中怎么测试varchar类别最大长度

(编辑:荆州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读