You need to enable JavaScript to run this app.
导航

在迁移或同步任务中,导致源端和目标端数据不一致的原因是什么?

最近更新时间2023.10.17 17:41:06

首次发布时间2023.03.16 11:54:41

可能原因一

在 MySQL 类型的迁移或同步(除同步至 ElasticSearch 外)任务执行过程中,如果在源端执行的 DDL 增加列的语句中同时使用了自动初始化和更新 TIMESTAMPDATETIME 类型的字段,可能会导致该列数据不一致。例如:

  • 在 DDL 添加列的语句中同时使用自动初始化和更新 TIMESTAMP
ALTER TABLE test
ADD COLUMN update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
  • 在 DDL 添加列的语句中同时使用自动初始化和更新 DATETIME
ALTER TABLE test 
ADD COLUMN update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

可能原因二

结构迁移或结构初始化过程中,当遇到目标库中已存在的数据对象(如同名的表或视图等)时,会直接跳过。
  解决方案
  建议在执行结构迁移或结构初始化前,先确保目标库中没有与待迁移或初始化对象同名的对象。