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,修改字段长度即可。

posted @   新*  阅读(2085)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-07-05 C#获取%USERPROFILE%相对路径

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示