天天看点

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

使用 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比较简单就不再赘述了,希望能帮助到大家