使用 sync_diff_inspector 验证 mysql 与 tidb 之间的数据一致性,发现如果字段定义了 zerofill 属性,sync_diff_inspector 会把 mysql与 tidb 的数据识别为不一致,并且修复差异的 sql 语句,对应 字段的值前填充了很多 0
按照 tidb 官方文档的描述:
ZEROFILL 补零标识,如果有这个标识,TiDB 会自动给类型增加 UNSIGNED 标识
这能说明 mysql 与 tidb 在数据存储上的处理是不一致的。
对于数字结果来说,这两者应该视为相同,在不修改 mysql 表结构的情况下,不知道有没有什么规避的方法?
可以 用 ignore-columns 忽略这个列
楼上大佬说的对,忽略它
那就无法知道这个列的差异了,表小还好说,表大就麻烦了
看官方文档: sync-diff-inspector 用户文档 | PingCAP 文档中心 目前感觉就是只能先使用ignore-columns忽略这个列,然后再单独通过其他方式对这个列的数据进行校验