oracle数据库,通过MERGE INTO语句 同步数据的用法

文章介绍了如何使用SQL的MERGEINTO语句来同步两个表之间的数据,特别是针对1对1表关系的情况。在示例中,从TABLE_B同步DESC1和DESC12字段到TABLE_A的MATETIAL_NAME和MATERIAL_CODE字段,当匹配时进行更新,不匹配时进行插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 MERGE INTO 同步表数据,注意仅限于表关系1对1类型,如一对多编译无问题,但在执行会报错
最近再做项目需要做个数据同步的操作,A表有五个字段,要给B表同步其中两个字段,经过查询资料发现使用 MERGE INTO语句来实现,废话不多说,直接开始上sql
MERGE INTO TABLE_A AS A USING TABLE_B AS B ON ( A.‘相同字段’= B.‘相同字段’ ) “WHEN matched THEN” 表示如果存在,然后写你需要执行的sql,如果不存在 WHEN NOT matched THEN 写执行的sql
	MERGE INTO PMP_ENQUIRY_PRICE A USING PMP_MATERIAL_DETAILED B ON ( A.MATERIAL_CODE = B.DESC12 ) 
	WHEN matched THEN
	UPDATE SET 
	-- 这里修改是别名A表的哪个字段修改为关联出B表关联出的字段
		A.MATERIAL_NAME = B.DESC1
	WHEN NOT matched THEN
	--新增语句  A.ID 表示给 PMP_ENQUIRY_PRICE 表里新增
	INSERT ( A.ID,A.MATERIAL_CODE, A.MATERIAL_NAME )
  VALUES
	( SYS_GUID(),C.DESC12, C.DESC1);
这个sql比较简单就不再赘述了,希望能帮助到大家
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值