MySQL:SQL 错误 [1118] [42000]: Row size too large.
1.场景:
今天在用MySQL建表的时候,报了一个错误;
SQL 错误 [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
2.原因:
从字面的意思理解就是【所用表类型(不包括 BLOBs)的最大行大小为 65535,您必须将某些列更改为TEXT或 BLOBs】;
1.如果数据库编码为utf8mb4,表所有varchar字段总长度(Length):Length*4不能大于65535;
2.如果数据库编码为utf8,表所有varchar字段总长度(Length):Length*3不能大于65535;
3.解决方案:
将建表SQL中varchar长度比较大(比如超过2000)的字段,类型修改为TEXT,避免varchar总长度超过65535即可;
4.相似异常:
Specified key was too long; max key length is 3072 bytes
这种报错往往出现在MySQL创建联合索引的时候,MySQL的联合索引所有字段的长度不能超过3072,修改字段长度即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2021-07-05 C#获取%USERPROFILE%相对路径