如何对两个数据库表进行数据同步?

技术不佳,这个问题困扰了我一天,最终用merge解决~~
问题来源呐就是:
test1表新增了一个PSAM字段,test2表里面有所有的PSAM字段值,两个表根据 MERCHANT_ID 和TERMINAL_ID 来对应,一个MERCHANT_ID 对应多个TERMINAL_ID字段,因为数据量庞大,达到万条,所以需要用到merge来解决

sql语句:

MERGE INTO test1 A USING (
			SELECT DISTINCT
				e.TERMINAL_ID,
				e.PSAM
			FROM
				test1 p,
				test2 e
			WHERE
				p.MERCHANT_ID = e.MERCHANT_ID
			AND p.TERMINAL_ID = e.TERMINAL_ID
			AND p.ISDISABLE = '1'
		) temp1 ON (
			A.TERMINAL_ID = temp1.TERMINAL_ID
		)
		WHEN matched THEN
			UPDATE
		SET A.PSAM = temp1.PSAM;

下面对merge进行一下解说:
merge是DML中的一个关键字。官方解释:根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。
所以说做 数据同步 或 数据转换 时可以使用merge 。

详细介绍可以查看这篇博客:https://www.cnblogs.com/lgx5/p/4813357.html

    原文作者:西上一颗草
    原文地址: https://blog.csdn.net/lcx102009/article/details/109092871
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞