학습용 기출·복원자료 분류 확인SQLD · 2023년 49회 SQL 기본 및 활용 · 44번
MERGE 문에서 대상 키가 일치하는 행은 수정하고 일치하지 않는 행은 삽입하려면?
1
WHEN MATCHED THEN UPDATE, WHEN NOT MATCHED THEN INSERT
정답 근거MERGE의 ON 조건이 참인 대상은 MATCHED 절의 UPDATE를 수행한다. 일치 행이 없으면 NOT MATCHED 절의 INSERT가 수행된다. 따라서 1번 보기 ‘WHEN MATCHED THEN UPDATE, WHEN NOT MATCHED THEN INSERT’의 적용 여부를 문제 조건과 대조해야 한다.
2
WHEN MATCHED THEN INSERT, WHEN NOT MATCHED THEN UPDATE
오답 이유일치 여부에 따른 두 동작의 위치를 반대로 배치했다. 따라서 2번 보기 ‘WHEN MATCHED THEN INSERT, WHEN NOT MATCHED THEN UPDATE’의 적용 여부를 문제 조건과 대조해야 한다.
3
WHEN MATCHED THEN DELETE만 사용한다.
오답 이유일치 행을 삭제할 뿐 수정과 신규 삽입 요구를 충족하지 않는다. 따라서 3번 보기 ‘WHEN MATCHED THEN DELETE만 사용한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
USING 절 없이 ON 조건만 작성한다.
오답 이유MERGE는 대상과 비교할 원천 행 집합을 USING 절로 제공해야 한다. 따라서 4번 보기 ‘USING 절 없이 ON 조건만 작성한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 1번
핵심 판단은 1번 ‘WHEN MATCHED THEN UPDATE, WHEN NOT MATCHED THEN INSERT’입니다. MERGE의 ON 조건이 참인 대상은 MATCHED 절의 UPDATE를 수행한다. 일치 행이 없으면 NOT MATCHED 절의 INSERT가 수행된다.