티스토리 뷰


1.  MERGE - 역할

테이블에 데이터를 삽입하거나 수정하거나 삭제할 때 INSERT,UPDATE,DELETE 문을 조건에 따라 한 문장으로 해주는 것


◈ 구문형식


MERGE INTO 테이블명 USING SELECT

ON 조건 


WHEN MATCHED THEN 

UPDATE DELETE 구문


WHEN NOT MATCHED THEN 

INSERT 구문

[WHERE 절]




2. MERGE - 기본 테이블


◈ TEST_TABLE_ONE


 IDX

ID

NAME

AMT

1

test1

테스트1

1000

2

test2

테스트2

2000

3

test3

테스트3

3000



◈ TEST_TABLE_TWO


 IDX

ID

NAME

AMT

1

test3

테스트3

7000

2

test4

테스트5

5000

3

test6

테스트6

6000




3. MERGE - SQL 문장


◈ SQL 문장

1
2
3
4
5
6
7
MERGE INTO TEST_TABLE_ONE A
USING (SELECT * FROM TEST_TABLE_ONE) B
ON (A.ID=B.ID)
WHEN MATCHED THEN
UPDATE SET AMT = B.AMT
WHEN NOT MATCHED THEN
INSERT VALUES (B.IDX,B.ID,B.NAME,B.AMT)


◈ 결과 테이블


ID

NAME

AMT

test1

테스트1

1000

test2

테스트2

2000

test3

테스트3

7000

test4

테스트4

4000

test5

테스트5

5000


◈ 설명


두개의 테이블을 비교해 보면 일단 테이블 1,2 에 일치하는 ID는 test3 입니다.

그래서 일치하는 ID가 있는 test3은 3000 으로 AMT가 업데이트 되었습니다.

그리고 일치하지 않는 ID인 test4,test5는 INSERT를 하였음으로 위와 같은 결과가 나오게 됩니다.



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday