您现在的位置是:群英 > 数据库 > MySQL数据库
更新text字段报错怎么解决
Admin发表于 2022-04-27 11:00:46981 次浏览
这篇文章给大家介绍了“更新text字段报错怎么解决”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“更新text字段报错怎么解决”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。

起因
团购开发报告说更新时出错。

更新SQL如下
 
UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
WHERE d.ID=100976;
报错信息如下
Error Code : 1118
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs
疑惑
更新字段只涉及 column_name字段,且该字段是TEXT类型。

个人之前理解是
TEXT的内容在 Dynamic的table format下是存在off-page中的,不会占用row size的计算。
Barracuda 对应row_format ( dynamic, compress) ,其中dynamic下text的所有内容都是off-page存放的 (点击查看)
Antelope 对应row_format (compact, redundant),其中compact下的text是存786B在row中,超过部分存在off-page
而服务器配置是 innodb_file_format = Barracuda
照理说所有table用的都是 dynamic 结构。
但是! 原因如下,摘自文档:
To preserve compatibility with those prior versions, tables created with the InnoDB Plugin use the prefix format, unless one of ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED is specified (or implied) on the CREATE TABLE command.
也就是说,建表时不显示指定 row_format = dynamic ,即使 innodb_file_format = Barracuda 表的row-format还是 compact

所以总结为一句话就是:如果某个表的text字段很多建议建表时加上 row_format = dynamic
当然,回过头来MySQL的报错也是有误导性的,bug库中也对confirm了这个bug(点击查看),并在5.1.61中优化了报错提示。
到此这篇关于“更新text字段报错怎么解决”的文章就介绍到这了,感谢各位的阅读,更多相关更新text字段报错怎么解决内容,欢迎关注群英网络资讯频道,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2021-12-18 17:49:07 
摘要:MySQL和oracle数据库都是常遇到的数据,其中有时候我们需要给数据库表中添加注释,那么具体的方法是什么呢?要注意哪些?下面我们具体的了解看看。
2022-05-14 14:55:07 
摘要:oracle存储过程的参数类型有:1、输入类型,表示调用者向过程传入值;2、输出类型,表示过程向调用者传出值(可以返回多个值);3、输入输出类型,既表示调用者向过程传入值,又表示过程向调用者传出值。
2022-10-18 17:46:09 
摘要:本篇文章给大家带来了关于mysql的相关知识,其中主要为大家总结了一些MySQL中数据库优化的常见sql语句,文中的示例代码讲解详细,下面一起来看一下,希望对大家有帮助。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部