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)
,