关于 mysql数据库创建表”ERROR 1118 (42000): Row size too large (> 8126).“错误 的解决方法

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129916957

红胖子网络科技的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…

数据库相关开发


问题

  设计数据库的时候因为属性达到接近300个,将讲同样类型但是类序号不一样的相同属性存到一个字段,但是无法查询,于是分字段,可以很好的直接sql查询,结果发现数据库拆封出来,重新source的时候就出现该问题。
  在这里插入图片描述


原因

  
在这里插入图片描述


尝试

  尝试修改数据类型为text,缩减varchar为varchar(8),都不行,如果不这么多又无法查询,所以只能将数据库这部分数据全部重新分表设计(之前已经设计了几个不同号的同一类对象用字符分隔存在一个属性里面,但是遇到范围和字符串查询就不能直接从数据库查询了)。
  不重新写数据库,上百个属性都要自己手动每一个去写对查出列表的查询,加起来大概500多属性,而分表,虽然可以联合直接从数据库查询,但是会导致之前200多个数据数据库查询和界面框架需要重新适配的的属性,两者工作量都比较多,细节性的工作非常耗费时间,且没有之前排期之中。


解决方法

  分表存储,关键字一样,联合查询
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述

  在这里插入图片描述

  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  相当于一张表的查询方式:
在这里插入图片描述


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129916957

猜你喜欢

转载自blog.csdn.net/qq21497936/article/details/129916957
今日推荐