MySQL同步推送数据到MySQL时tinyint(1)类型时失败问题
背景
最近在负责的一个大数据产品项目中,有一个数据推送/同步数据的功能。
问题报错
生产环境的MySQL数据同步到预发环境。业务同学反馈数据同步失败,预发环境的数据不对。
从数据源获取数据的SQL语句为:
select
id,name,sort,type,url,inserttime,updatetime,isactive
from
rhinoce_menu
推送到预发环境的表,和生产环境的表字段,数量和类型完全一致。当然,目的数据源的数据表字段允许多余源头数据源的数据表字段。
排查
测试环境并没有复现这个问题。
注意到只有一个字段和源头的数据表字段不一样,就是type,无意间发现其类型为tinyint(1)
,隐隐约约感觉定位到问题根源。于是翻了下自己的博客。乖乖!!发现2020年8月份写过一篇类似的文章:Mybatis笔记之tinyint自动转型为boolean
验证
本地修改一下测试数据表的字段类型为tinyint(1)
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix