어흥
[Oracle] MERGE INTO 본문
728x90
반응형
1. MERGE INTO 사용 이유
- 한번에 INSERT, UPDATE를 처리하고 싶을 때 사용
즉,
이미 존재하는 경우 : UPDATE
존재하지 않는 경우: INSERT
2. 예시
[Table 2개를 비교할 때]
MERGE INTO EMPLOYEE E
USING(
SELECT
ID
,USERNAME
,PNUM
,ADDRESS
,DEPTNO
FROM NEW_EMPLOYEE
WHERE HIREDATE>=TO_DATE('20200801','YYYYMMDD')
AND HIREDATE<=SYSDATE
) NE
ON(E.ID = NE.ID)
WHEN MATCHED THEN //이미 존재하는 경우 UPDATE 수행
UPDATE
SET
E.USERNAME = NE.USERNAME
,E.PNUM = NE.PNUM
,E.DEPTNO = NE.DEPTNO
WHEN NOT MATCHED THEN //존재하지 않는 경우 INSERT 수행
INSERT (
ID
,USERNAME
,PNUM
,ADDRESS
,DEPTNO
)
VALUES(
NE.ID
,NE.PNUM
,NE.ADDRESS
,NE.DEPTNO
)
[직접 값을 입력할 때]
MERGE INTO EMPLOYEE E
USING DUAL
ON(E.ID = '20200804')
WHEN MATCHED THEN //이미 존재하는 경우 UPDATE 수행
UPDATE
SET
E.USERNAME = '홍길동'
,E.PNUM = '01011112222'
,E.DEPTNO = '23'
WHEN NOT MATCHED THEN //존재하지 않는 경우 INSERT 수행
INSERT (
ID
,USERNAME
,PNUM
,ADDRESS
,DEPTNO
)
VALUES(
'20200804'
,'홍길동'
,'01011112222'
,23'
)
728x90
반응형
'Oracle' 카테고리의 다른 글
[Oracle] Sequence (0) | 2020.07.22 |
---|---|
[Oracle] Index (0) | 2020.07.09 |
[Oracle] Plan (0) | 2020.07.09 |
[Oracle] SQL (DDL, DML) (1) | 2020.07.07 |
Comments