선택장애

데이터베이스(DB) - MERGE -> INSERT+UPDATE로 바꾸기 본문

데이터베이스(DB)

데이터베이스(DB) - MERGE -> INSERT+UPDATE로 바꾸기

yes or yes 2017. 8. 14. 15:58
반응형

MERGE는 INSERT문을 하는데 그 INSERT(입력)할 정보가 있으면 UPDATE(수정)하라는 말인데요 흠...
쉽게말해서 없으면 넣고 있으면 수정하자는 말이죠... 설명을 더럽게 못해서 MERGE문은 구글링 부탁드려요..;;

●먼저 MERGE의 기본문법


 
MERGE INTO 테이블이름
            USING DUAL                                  /*한개의 테이블만 이용하려면 DUAL을 사용합니다*/
                 ON (조건)                                         /*조건문입니다*/
            WHEN MATCHED THEN                      /*데이터가 있을 경우*/ 
                     UPDATE SET 업데이트내용           /*UPDATE(수정)*/
            WHEN NOT MATCHED THEN              /* 데이터가 없을 경우*/
                     INSERT (컬럼이름) VALUES (값);  /*INSERT(입력)*/

 


●본격적인 MERGE문을 INSERT+UPDATE문으로 바꾸기


  
MERGE INTO 테이블이름
              USING DUAL 
                      ON ( AA = #AA

                               AND BB=#BB#) 
                     WHEN MATCHED THEN 
                        UPDATE SET CC= #CC#  
                     WHEN NOT MATCHED THEN 
                        INSERT (AA, BB, CC) 
                        VALUES (#AA#, #BB#, #CC#);


※위의 MERGE문을 INSERT+UPDATE로 바꾸면


 INSERT INTO 테이블이름(AA, BB, CC) 
             VALUES(#AA#, #BB#, #CC#);  

UPDATE 테이블이름 
            SET CC=#CC
    WHERE AA = #AAAND BB=#BB#; 
                   

이렇게 따로할 수 있는데 그냥 MERGE문 쓰는게 답입니다...

반응형