MySQL表数据同步的方法

2025-01-22 21:56:33
丁国栋
原创 73
摘要:本文记录如何同步MySQL数据库表的数据,从表A同步到表B,从其他数据库表A同步到另一个数据库表B等。

应用场景:

  1. 数据库A表缺少了一条或多条数据,我们需要从备份数据库B里找到这条记录并还原到数据库A
  2. 数据库表T1缺少了一条或多条数据,我们需要从数据库表A的另一个表T2(表T2可以是表T1的备份或冗余表)找到这条记录并添加到表T1

对于场景1,最好是借助同步工具,比如 Navicat 这样的工具,可以通过数据同步功能同步,适用于较复杂的情况,例如两个数据库之间、两个数据表结构不完全相同等;

对于场景2,有一个比较简单的方式,就是利用MySQL的SQL语句 insert into ... select ... from ...

例如先使用SQL语句查询在表A但不在表B中的数据

SELECT src.id FROM TABLE_A src WHERE NOT EXISTS ( SELECT 1 FROM TABLE_B dst WHERE src.id = dst.id );

确认没有问题后,使用SQL语句将表A有但表B中没有的数据插入到表B,这里假设表A和表B表结果完全相同。

INSERT INTO TABLE_B SELECT * FROM TABLE_A src WHERE NOT EXISTS ( SELECT 1 FROM TABLE_B dst WHERE src.id = dst.id );


发表评论
博客分类