SQL错误: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 BLOB

原因:创建表的时候,字段超长了

例如

CREATE TABLE `t_error35` ( `id` varchar(255) NOT NULL COMMENT '主键', `class_name` varchar(65278) NOT NULL COMMENT '错误码对应类名' ) ENGINE=InnoDB CHARSET=ascii ROW_FORMAT=COMPACT;

65535是最大的值,255+ 1(变长长度)+ 65278 (大于255)+ 2(变长长度) = 65536

解决:将class_name 设置为 BLOB或者TEXT

解决思路 来源于 MySQL 一行记录是怎么存储的? | 小林coding

相关推荐
趁你还年轻_32 分钟前
Redis大量key集中过期怎么办
数据库·redis·缓存
GUIQU.1 小时前
【Oracle】视图
数据库·oracle
南棱笑笑生1 小时前
20250605在微星X99主板中配置WIN10和ubuntu22.04.6双系统启动的引导设置
数据库
Leo.yuan1 小时前
实时数据仓库是什么?数据仓库设计怎么做?
大数据·数据库·数据仓库·数据分析·spark
艾露z1 小时前
深度解析Mysql中MVCC的工作机制
java·数据库·后端·mysql
gs801401 小时前
[闭源saas选项]Pinecone:为向量数据库而生的实时语义搜索引擎
数据库·搜索引擎
大熊猫侯佩2 小时前
使用令牌(Token)进一步优化 SwiftData 2.0 中历史记录追踪(History Trace)的使用
数据库·swift·apple
网安小张2 小时前
解锁FastAPI与MongoDB聚合管道的性能奥秘
数据库·python·django
老兵发新帖2 小时前
Flyway
数据库