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

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

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

示例

mysql> Create Table var_test(FName Varchar(32765) NOT NULL, LName Varchar(32766)

       NOT NULL);

上面的查询创建了一个包含两列的表,即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

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

以上是 MySQL VARCHAR列的最大长度是多少? 的全部内容, 来源链接: utcz.com/z/326820.html

回到顶部