MYSQL : ERROR 1118 (42000): Row size too large.

报错信息如下:

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

报错的信息很简单,就是创建表的时候,所有字段的字节长度加起来超过了65535

解决的办法就是:
将长的字段格式改成longtext 或者是 longblob

这两个类型的区别是:如果存放二进制文件就用longblob,如果存放长文本,就用longtext

到这里基本能解决了

!!!

如果还是爆超长,则需要查看数据库的字符集类型
需要注意一下字符集:

utf8与utf8mb4区别

utf8 使用1~4个字节,一种变长的编码格式,字符编码。utf8mb4 即most bytes 4,使用4个字节来表示完整的UTF-8

结论:如果数据库的字符集是utf8mb4,那就改成utf8,嗯,排序规则也改 ,65535其实是字节长度,如果是utf8mb4,会算成4个字节,很容易就会超长。


__EOF__

本文作者Reisen7
本文链接https://www.cnblogs.com/reisen7/p/18547102.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Reisen7  阅读(226)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示