小编典典

varchar的最大长度取决于MySQL中的最大行大小,即64KB(不包括BLOB):

VARCHAR(65535)

但是,请注意,如果使用多字节字符集,则限制会更低:

VARCHAR(21844) CHARACTER SET utf8

这里有些例子:

最大行大小为65535,但是varchar还包括一个或两个字节来编码给定字符串的长度。因此,即使它是表中的唯一列,您实际上也无法声明最大行大小的varchar。

mysql> CREATE TABLE foo ( v VARCHAR(65534) );

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 foo ( v VARCHAR(65532) );

Query OK, 0 rows affected (0.01 sec)

现在,如果我们尝试在表级别使用多字节字符集,则会发现它会将每个字符都计为多个字节。UTF8字符串 不一定

每个字符串都使用多个字节,但是MySQL无法假定您将所有以后的插入都限制为单字节字符。

mysql> CREATE TABLE foo ( v VARCHAR(65532) ) CHARSET=utf8;

ERROR 1074 (42000): Column length too big for column 'v' (max = 21845); use BLOB or TEXT instead

尽管最后一个错误告诉我们,InnoDB仍然不喜欢21845的长度。

mysql> CREATE TABLE foo ( v VARCHAR(21845) ) 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

如果您计算得出21845 * 3 = 65535,那还是行得通的。而21844 * 3 = 65532,就可以了。

mysql> CREATE TABLE foo ( v VARCHAR(21844) ) CHARSET=utf8;

Query OK, 0 rows affected (0.32 sec)

2020-05-17

mysql varchar(max)_等价于MySQL中的varchar(max)?相关推荐

  1. mysql sqlserver 函数_等价于MySQL中的SQLServer函数SCOPE_IDENTITY()??mysql-问答-阿里云开发者社区-阿里云...

    这是您要寻找的: LAST_INSERT_ID() 为了回应OP的评论,我创建了以下基准测试: CREATE TABLE Foo ( FooId INT AUTO_INCREMENT PRIMARY ...

  2. oracle语句mysql数据库名称_查询oracle数据库中当前数据库所有表的名称

    SQL查询数据库中所有指定类型的字段名称和所在的表名 --查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 ...

  3. mysql列连接_连接来自MySQL中不同表的列

    您可以使用CONCAT().让我们首先创建一个表-mysql> create table DemoTable1 -> ( -> FirstName varchar(20) -> ...

  4. mysql 自然排序_如何在mysql中实现自然排序

    背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的 ...

  5. docker容器mysql头文件_在Docker容器中使用MySQL数据库

    开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...

  6. 怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口

    在本指南中,我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口. MySQL数据库服务器在Linux和Unix下运行的默认端口 ...

  7. linux mysql清除缓存_转载-清除Linux中MySQL的使用痕迹~/.mysql_history

    背景:我们在管理MySQL server的时候,常常使用mysql命令行工具连接MySQL server进行操作,此时我们可以像shell命令行一样,按向上的方向键, mysql会给出我们最近执行的S ...

  8. Win7进入mysql环境命令_怎样在win7中使用命令行启动mysql数据库服务

    展开全部 1.Win菜单键+R组合打开32313133353236313431303231363533e58685e5aeb931333363383962Winodws7运行窗口,在打开编辑框中输入c ...

  9. mysql关键字释义_数据库连接字符串ConnectionString 中的关键字值释义

    ConnectionString 类似于 OLE DB 连接字符串,但并不相同.与 OLE DB 或 ADO不同,如果"Persist Security Info "值设置为fal ...

最新文章

  1. openssh相关文件传输功能
  2. vc6 前进后退 番茄_openMP 使用 VC6+Intel Compiler 9.1 (来自网络)
  3. WebLogic Platform 8.1 SP3 简体中文版发行
  4. 查找重复文件_重复文件查找和磁盘整理工具:Tidy Up
  5. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期下跌2.98%
  6. 洛谷——P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here
  7. 【转】MPLAB使用PICKit3.5烧录程序说明
  8. Win10如何使用命令释放IP和重新获取新IP
  9. ppt圆形箭头怎么画
  10. python中的ide是什么意思_用于Python的IDE是什么?
  11. [周鸿祎] 与其苟且活着,不如奋起抗争
  12. amd锐龙CPU A320系列主板如何安装win7
  13. 《经济的律动》徐远(作者)epub+mobi+azw3格式下载
  14. 一台电脑怎么登录多个微信?~~方法超简单
  15. Photoshop 面试题
  16. 从顺丰到菜鸟,洋女婿“爆改”俄罗斯邮政
  17. composingBuild依赖统一管理实践
  18. 全国(省,直辖市,自治区,特别行政区)映射集合
  19. android webview 炉石,从炉石传说的一个自杀OTK说起
  20. 黑客入门——手机wifi定位原理

热门文章

  1. div内容设float之后,div的自动高度适应
  2. 设计模式-结构型-装饰
  3. 数字图像处理实验(17):PROJECT 06-04,Color Image Segmentation
  4. 代码逻辑分析_入行数据分析师不得不看的10本书
  5. ios 摇一摇不走响应方法_猫咪不和主人亲近?这几种方法让它变得黏人,赶都赶不走|猫|宠物猫|主人...
  6. [ARC055D]隠された等差数列
  7. iptables_默认规则
  8. ASP技巧实例:几行代码解决防止表单重复提交
  9. 基于AcrGIS平台实现三维场景下的积水效果动态模拟
  10. 链路追踪之zipkin