诡异的 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column “dat
Posted Only丿阿海
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了诡异的 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column “dat相关的知识,希望对你有一定的参考价值。
关键字
mysql
longtext
Data too long for column
json
异常出现场景
- 版本mysql8, 使用了mysql的
json
字段 - 尝试将字段类型改为
longtext
- 即使改为
longtext
(最大支持四亿多字符)依然顽强的报data too long…
报文如下:
com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column "data"
有帮助的尝试
尝试就该字段名data
为data_json
, 问题解决。
后记
网上充斥着过多的垃圾信息,给问题排查带来了很多困扰,被带偏了很多次,因此记录一下。
这个异常出现的相当诡异,首先数据库设置是没问题的,并且尝试手动执行sql可以正常插入。但是在项目中会抛出该异常。
起初以为是seata
引起的, 建立了一个demo项目跑起来依然报错。排除seata
问题。
坚信字段类型没问题,排除所有不可能后,问题聚焦在字段本身的命名data
上,
尝试修改命名后问题解决。因此断定data
在mysql中是一个特殊的保留字段。
由上可以得出两种解决方案:
- 修改字段命名
- sql语句中,字段名使用 ` 包裹。
以上是关于诡异的 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column “dat的主要内容,如果未能解决你的问题,请参考以下文章