关于不同表间的数据同步
工作中遇到一个问题,添加新的数据同步逻辑后,需要对旧数据进行修复,于是需要进行表间的数据同步,记录一下
由于同步的目标表是一个辅助表,其中的数据相较于源表数据会少很多,于是得分两步。已有数据的修改,没有数据的新建
已有数据的修改:
update 表1 ta,表2 tb set ta.目标字段 = tb.源字段 where ta.关联id = tb.关联id
不同库需要指定库名
新数据的创建
insert into 表a
(目标字段1,目标字段2,目标字段3)
select * from
(select 源字段1,源字段2,源字段3
from 表2 Where id In (Select Max(id)
From 表2 Group By 去重字段)) as c
where not exists (select * from 表a
where 表a.关联字段= c.关联字段)
即可实现目标要求
注意。源字段与目标字段属性需一样,否则必须使用脚本等其他方法