IT/ORACLE

[ORACLE] 원본 테이블에 다른 테이블 병합하기 MERGE INTO 문 사용하기

나콘 2023. 5. 4. 10:32

MERGE INTO 

 

MERGE INTO 문은 지정된 조건에 따라 원본 테이블의 데이터를 대상 테이블로 병합할 수 있는 SQL 명령이다 

이 명령문은 UPDATE 및 INSERT 명령의 기능을 단일 명령문으로 결합한다 .

 

 

 

 

 


[예시]

 

MERGE INTO target_table

USING source_table

ON join_condition

WHEN MATCHED THEN

UPDATE SET target_column = source_column

WHEN NOT MATCHED THEN

INSERT (target_column1, target_column2, ...)

VALUES (source_column1, source_column2, ...)

 

 

 

[해설]

 

MERGE INTO 여기서 "target_table"은 데이터를 병합하려는 테이블이고

USING "source_table"은 병합하려는 데이터가 포함된 테이블 이다 

             만약 into절과 동일 테이블이라면 DUAL 사용을 사용한다 ( USING DUAL )

MERGE INTO 문은 "USING" 및 "ON" 절을 사용하여 소스 및 조인 조건을 각각 지정해야 합니다. 

ON "join_condition"은 원본 테이블의 데이터를 대상 테이블과 병합하는 방법을 결정하는 조건을 지정합니다.

WHEN MATCHED THEN 절은 대상 테이블과 소스 테이블 모두에서 일치하는 행이 발견될 때 수행해야 하는 조치를 지정합니다

이 경우 "UPDATE SET" 절을 사용하여 지정된 대상 열의 값을 원본 테이블의 해당 값으로 업데이트합니다.

WHEN NOT MATCHED THEN 절은 대상 테이블에서 일치하는 행을 찾을 수 없을 때 취해야 할 조치를 지정합니다.

INSERT 원본 테이블의 값을 사용하여 대상 테이블에 새 행을 삽입하는 데 사용됩니다.

 

 

 

 

 

 

MERGE INTO 문은 서로 다른 두 테이블 또는 데이터베이스의 데이터를 동기화해야 하는 경우와 같이 데이터 통합 ​​시나리오에서 자주 사용된다  스테이징 테이블의 최신 데이터로 대상 테이블을 주기적으로 새로 고쳐야 하는 데이터 웨어하우징 환경에서도 유용하세 사용할 수 있다 

 

 

 

 

반응형