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