对比表数据

在数据迁移中,我们经常需要比较两个表,以便在一个表中标识另一个表中没有相应记录的记录。

​ 例如,我们有一个新的数据库,其架构与旧数据库不同。我们的任务是将所有数据从旧数据库迁移到新数据库,并验证数据是否正确迁移。要检查数据,我们必须比较两个表,一个在新数据库中,一个在旧数据库中,并标识不匹配的记录。

使用 union all 可比较出两个表各自独特的数据(不重复)

select c.`local` from (
    select a.`code` as `local` from db1.tb1 as a
    union all
    select b.`code` as `init` from db2.tb2 as b
) as c
group by c.`local` having count(*) = 1;

如果两个表数据完全一致,则返回空(Result 1),如果不一致,则返回不同的数据(Result 2)

Result 1 Result 2
local local
google.GTes
google.GTest
posted @ 2021-08-20 09:59  来一杯coffee  阅读(103)  评论(0)    收藏  举报