본문 바로가기
Dev/Oracle

[Oracle] MERGE

by 흰바다제비 2022. 6. 24.
728x90
  1. MERGE UPDATE 문법
MERGE INTO TABLE_A A
USING TABLE_B B /* 서브쿼리 사용 가능 */
ON    (A.KEY = B.KEY) 
WHEN MATCHED THEN UPDATE 
  SET A.COLUMN1 = B.COLUMN1 ;

→ KEY 값이 일치하면 A의 COLUMN1 를 B.COLUMN1 값으로 UPDATE

 

 

2. MERGE INSERT 문법

MERGE INTO TABLE_A A
USING TABLE_B B 
ON    (A.KEY = B.KEY) 
WHEN NOT MATCHED THEN INSERT 
  (A.COLUMN1, A.COLUMN2, A.COLUMN3) 
  VALUES (B.COLUMN1, B.COLUMN2, B.COLUMN3) ;

→ KEY 값이 일치하지 않으면 해당하는 KEY의 B 테이블 DATA INSERT

 

 

3. MERGE UPDATE & INSERT 문법

MERGE INTO TABLE_A A
USING TABLE_B B 
ON    (A.KEY = B.KEY) 
WHEN MATCHED THEN UPDATE 
  SET A.COLUMN1 = B.COLUMN1
WHEN NOT MATCHED THEN INSERT 
  (A.COLUMN1, A.COLUMN2, A.COLUMN3) 
  VALUES (B.COLUMN1, B.COLUMN2, B.COLUMN3) ;

→ KEY 값이 일치하면 A의 COLUMN1 를 B.COLUMN1 값으로 UPDATE

일치하지 않으면 해당하는 KEY의 B 테이블 DATA INSERT

 

 

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/MERGE.html#GUID-5692CCB7-24D9-4C0E-81A7-A22436DC968F

 

SQL Language Reference

 

docs.oracle.com

 

 

 

728x90

'Dev > Oracle' 카테고리의 다른 글

[Oracle] Lock 확인  (0) 2022.07.06
[Oracle] 상황별 테이블스페이스 명령어  (0) 2022.07.05
[Oracle] LEFT OUTER JOIN  (0) 2022.06.22
[Oracle] 제약조건  (0) 2022.06.21
[Oracle] 인덱스 탐색 방식  (0) 2022.06.21

댓글