使用 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比較簡單就不再贅述了,希望能幫助到大家