Data truncation: Data too long for column 'big_bit' at row 1

本文探讨了编码问题和数据长度问题导致的异常,提供了调整字段长度和编码设置的解决方案,帮助开发者解决相关技术难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现这个问题主要有两种原因:

1、编码问题

2、数据长度问题


对于第一个问题,我们只需要调整字段长度即可,例如我在mysql的表中插入一张图片,如果图片字段的格式为Blob(最大长度为65K),那么图片长度超过65K则会出现这个异常,解决办法是把Blob字段换成MediumBlob(16M)、或者LongBlob( 最大 4G)即可。


对于第二个问题就比较复杂了,以下为收集到的各种解决办法,我没有试过,仅供参考:

第一种情况:

将所有的编码都设置成utf8,jsp的contentType="text/html;charset=utf-8"
修改数据库默认编码ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 
修改表字段的编码ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL


第二种情况:

这种情况分为两步:插入数据和读取数据

1:插如数据到mysql中:
     在页面上加入本页的编码方式 
    <%@ page contentType="text/html;charset=gb2312" %>
     把你要插入的中文文字由gb2312转变为iso-8859
    title = new String(title.getBytes("GB2312"), "ISO-8859-1");
    ***注意此页面千万别在数据库的URL后面加任何编码方式*****
    conn = java.sql.DriverManager.getConnection    ("jdbc:mysql://localhost/zqswork","root","root");
  
   2:从mysql中读出数据到页面:
     依然在页面上加如编码方式
  <%@ page contentType="text/html;charset=gb2312" %> 
     把你要读出的中文由iso-8859转变为gb2312
  <%username = new String(username.getBytes("ISO-8859-1"), "gb2312");%>
   ****注意此页面一定要在数据库url处加入编码方式(与上面相反)******
    conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/zqswork?useUnicode=true&characterEncoding=gb2312","root","root");




Data truncation: Data too long for column是指在插入或更新数据时,数据的长度超过了列的最大长度限制。在这种情况下,需要修改数据库字段的长度,以适应较长的数据。 解决方案可以根据具体情况而定。一种常见的解决方案是将列的数据类型更改为更大的数据类型,例如将varchar改为text或mediumtext。这样可以容纳更长的数据。 另外,还可以尝试检查数据是否正确截断或缩短,以使其适应列的长度限制。如果数据确实超过了列的最大长度,那么只能通过增加列的长度或者修改数据以适应列的限制。 在具体操作上,可以通过修改数据库表结构来更改列的长度。例如,使用ALTER TABLE语句修改列的定义。具体的语法将根据数据库的类型而有所不同。 总之,解决Data truncation: Data too long for column的问题可以通过修改数据库字段的长度或调整数据来适应列的限制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【mysql报错】Data truncation: Data too long for column ‘XXX‘ at row 1](https://blog.youkuaiyun.com/ranran0224/article/details/127571063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MySql 插入时报:Data truncation: Data too long for column ‘xxx‘ at row 1](https://blog.youkuaiyun.com/weixin_51587574/article/details/127889896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Delphi7.1 Update](https://download.youkuaiyun.com/download/chenxh/135104)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值