직장생활/DataBase

오라클 MERGE INTO - 한번에 INSERT, UPDATE

체리백 2019. 5. 8.
반응형

기존 DB 내에 데이터가 있으면 UPDATE를 없으면 INSERT 하기 위해 MERGE문이 존재 합니다. 방법만 익숙해지면 유용하게 사용 가능 합니다~. :)

 

1) 두개 이상의 테이블 사용할 경우

1
2
3
4
5
6
7
8
9
10
11
12
MERGE INTO copy_emp c
            USING employees e
            ON (c.employee_id = 200911)
            WHEN MATCHED THEN
                      UPDATE SET
                            c.first_name = e.first_name,
                            c.last_name = e.last_name,
                            c.email = e.email,
                            ......
            WHEN NOT MATCHED THEN
                      INSERT (c.employee_id, c.first_name, c.last_name, ...... ) 
                                 VALUES (e.employee_id, e.first_name, e.last_name, ...... )
cs

 

2) 한개의 테이블 사용할 경우

1
2
3
4
5
6
7
8
9
10
11
12
MERGE INTO copy_emp c
            USING employees e
            ON (c.employee_id = 200911)
            WHEN MATCHED THEN
                      UPDATE SET
                            c.first_name = e.first_name,
                            c.last_name = e.last_name,
                            c.email = e.email,
                            ......
            WHEN NOT MATCHED THEN
                      INSERT (c.employee_id, c.first_name, c.last_name, ...... ) 
                                 VALUES (e.employee_id, e.first_name, e.last_name, ...... )
cs
반응형

댓글