728x90
단일 테이블에 KEY 값을 비교하여 만약 키값이 동일하다면, UPDATE문을 동일하지 않다면 INSERT를 해주는 쿼리문이다.
MERGE INTO 구문 작성법
MERGE INTO TABLE_NAME ALIAS
USING (TABLE | VIEW | SUBQUERY) ALIAS
ON (JOIN CONDITION)
WHEN MATCHED THEN
UPDATE SET COL01 = VAL01[...]
WHEN NOT MACHTED THEN
INSERT (COLUMN LIST) VALUES (VALUES);
예시 1)
MERGE INTO EMP C
USING EMPLOYEE E
ON(C.ID = 12345)
WHEN MACHTED THEN
UPDATE SET
C.NAME = E.NAME,
C.EMAIL = E.EMAIL,
C.PHONE = E.PHONE,...
WHEN NOT MACHTED THEN
INSERT (C.ID, C.NAME, C.EMAIL, ...)
VALUES (E.ID, E.NAME, E.EMAIL, ...);
예시 2)
MERGE INTO EMP
USING DUAL
ON (ID = 12345)
WHEN MACHTED THEN
UPDATE SET
NAME = 'Stella',
EMAIL = 'seungyeon.jeong@gmail.com',
PHONE = '01012345678', ...
WHEN NOT MACHTED THEN
INSERT (NAME, EMAIL, PHONE, ...)
VALUES ('Stella', 'seungyeon.jeong@gmail.com', '01012345678');
** 하나의 테이블만 이용한다면 DUAL을 활용
728x90