MySQL表数据同步的方法
- 2025-01-22 21:56:33
- 丁国栋
- 原创 73
应用场景:
- 数据库A表缺少了一条或多条数据,我们需要从备份数据库B里找到这条记录并还原到数据库A
- 数据库表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
);
发表评论