京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

MySQL报错1118,数据类型长度过长问题及办理

2024-11-3 22:18| 发布者: 76a9| 查看: 119| 评论: 0

摘要: 目次MySQL报错1118,数据类型长度过长错误提示为办理这个问题总结MySQL报错1118,数据类型长度过长 MySQL是世界上最盛行的开源关系型数据库管理体系。 MySQL提供了很多功能,从简单的数据查询到复杂的数据操作和管理。
目次

MySQL报错1118,数据类型长度过长

MySQL是世界上最盛行的开源关系型数据库管理体系。

MySQL提供了很多功能,从简单的数据查询到复杂的数据操作和管理。

在MySQL的使用过程中,我们时常会遇到各种问题,其中一个比力常见的问题是报错1118。

接下来,我们将解说MySQL报1118错误的原因息争决方法。

1118错误通常会在创建表的时间出现,

错误提示为

[code]“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”。[/code]

这个错误的意思是,在创建表时,某些列的长度相加凌驾了MySQL所答应的最大行长度65535。在计算行长度时,除去BLOB类型的列的长度,还要加上行存储的开销。

出现这个错误的原因是我们创建的表结构中包含了太多的长文本类型(如VARCHAR、TEXT),而没有足够的空间来存放其它列。

对于VARCHAR类型的列,MySQL必要为其分配额外的空间,以适应其变革的字符串长度。所以,当我们在表中使用大量VARCHAR类型的长文本时,会导致出现1118错误。

办理这个问题

我们可以采用两种方法:

一种是使用TEXT或BLOB类型的列更换VARCHAR类型的列。

由于TEXT和BLOB类型的列不必要额外的存储空间,所以可以避免出现1118错误。

但是必要留意的是,这些列不支持索引、排序、或者通配符查询。

[code]/** *创建表的时间,大概有170+的字段大部分的字段varchar(255)的长度, 之前是以为字段名太长的文字,然后到网上查找把varchar更换成text类型,也没有实验, 我直接删除一般的字段,表创建成功, 因为MYSQL所答应的最大长度为65535这个只是虚拟的长度但是实际长度完全没有这么长, 我估计也只有5万多长度 因为字段都很重要,所以我把全部的255长度全部更改成100长度终极创建表成功!!! */[/code]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。


来源:https://www.jb51.net/database/328522rb8.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 14:53 , Processed in 0.037583 second(s), 18 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部