** NOT SPECIFIED **-->‘\xF0\x9F\x87\xA8‘报错 bug1

项目场景:

java saveBatch 向tidb数据库批量入1000条数据,少了700条,没有报错

问题描述

数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据,打印日志
打印日志
Execute SQLINSERT INTO table ( id, name) VALUES ( ** NOT SPECIFIED **, ** NOT SPECIFIED ** )

原因分析:

一直以为** NOT SPECIFIED **是报错信息,数据转换有问题,所以去排查异常数据,然而,这是个正常的执行sql语句。最后比对表结构发现,是表数据集有问题(实际报错应该是  Incorrect string value: '\xF0\x9F\x87\xA8' for column 'name'

)

解决方案:

ALTER TABLE table(表名) CONVERT TO CHARACTER SET utf8mb4  COLLATE utf8mb4_unicode_ci;

注意,不能直接在dbeaver的表结构–数据集改,实际并没有改成功,可以刷新点进去查看DDL语句,此处数据集才是真实的数据集;
ex:

`ex` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '示例',
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值