MySQL VARCHAR大小限制

MyS*_*DBA 18 mysql size varchar

如果我在表中有一个类型字段的列,VARCHAR(15)如果我尝试插入长度为16的数据,MySQL会给出一个错误说明

Data too long for column 'testname' at row 1
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么MySQL中的VARCHAR字段需要固定长度?VARCHAR字段根据给定的大小每个记录占用多少字节?

mla*_*bie 14

MySQL 5.0手册:

VARCHAR列中的值是可变长度字符串.长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值.MySQL 5.0.3及更高版本中VARCHAR的有效最大长度受最大行大小(65,535字节,在所有列之间共享)和使用的字符集的限制.

当我确定列需要保存的数据永远不会超过一定长度时,我只使用VARCHAR ,即使这样我也很谨慎.如果我存储文本字符串,我倾向于使用其中一种TEXT类型.

有关如何使用字节的更多信息,请查看MySQL存储要求.


med*_*iev 13

如果将列设置为varchar(15)允许的最大字节数为15.因此,如果不修改列以支持超过15,则不能传递超过15个字符.如果存储4个字符的字符串,则应仅使用大约4个字节一个可能的15,而如果你使用char(15)它将填充其他11个空字节.

http://dev.mysql.com/doc/refman/5.0/en/char.html

(我的字节计算可能已关闭,因为它总是-1/+ 1或类似的东西).

  • Varchar最大为65,535.Char最多255个.我也不能使用Text. (5认同)
  • `varchar`的最大值是255.如果要存储大量数据,请尝试使用"TEXT"而不是"VARCHAR". (3认同)