MySQL VARCHAR列的最大长度是多少?

MySQL VARCHAR列的最大长度是多少?

实际上,VARCHAR数据类型以单字节和多字节字符存储可变长度字符数据。此数据类型的语法为VARCHAR(n),其中n是最大字符数,在创建表时必须指定。在MySQL 5.03之前,n的值可以是0到255之间,但在MySQL 5.03及以后,值可以在0到65,535之间。

VARCHAR中存储的最大字符数取决于最大行大小和使用的字符集。如果使用ASCII字符集,则可以存储65,535个字符,因为ASCII每个字符使用1个字节。另一方面,如果使用utf8字符集,则字符限制将为21,844,因为utf8每个字符将使用3个字节。最大行大小限制为65,535字节,这意味着包括所有列在内,它不能超过65,535字节。

阅读更多:MySQL 教程

示例

mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766)
       NOT NULL);
       Query OK, 0 rows affected (0.25 sec)
Mysql

上面的查询创建了一个具有两列的表,FName Varchar(32765)和LName Varchar(32766)。因此,总长度为32765+2+32766+2=65535(每个列使用2个字节来存储长度)。

mysql> Create Table var_test1(FName varchar(32766) NOT NULL, LName Varchar(32766)
       NOT NULL);
       ERROR 1118 (42000): Row size too large. The maximum row size for the used
       table
       type, not counting BLOBs, is 65535. You have to change some columns to TEXT
       or BLOBs
Mysql

现在,将长度增加1个字节,MySQL返回一个错误,如上面的查询所示。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册