对比表数据
在数据迁移中,我们经常需要比较两个表,以便在一个表中标识另一个表中没有相应记录的记录。
例如,我们有一个新的数据库,其架构与旧数据库不同。我们的任务是将所有数据从旧数据库迁移到新数据库,并验证数据是否正确迁移。要检查数据,我们必须比较两个表,一个在新数据库中,一个在旧数据库中,并标识不匹配的记录。
使用 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 |