개발/SQL

[SQL] Merge, 조건에 따라 UPDATE 또는 INSERT를 실행

mabb 2023. 6. 15. 10:40
반응형

 조건에 따라 UPDATE 또는 INSERT를 실행하는 MERGE라는 표준 구문이 있다는 것을 알게 되었다.

MERGE INTO 주로 테이블 USING 서브 테이블 ON (조건)
   WHEN MATCHED THEN
     UPDATE SET 컬럼1 = 값1 [, 컬럼2 = 값2 ...]
   WHEN NOT MATCHED THEN
     INSERT (컬럼1 [, 컬럼2 ...]) VALUES (값1 [, 값2 ...])
 

Merge (SQL) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. -->

ko.wikipedia.org

 

 

MERGE INTO CHAT_HISTORY_TABLE
USING(
	SELECT
		START_DT,
   		END_DT,
    FROM
    	CHAT_LOG_TABLE
    WHERE
    	CHAT_LOG_TABLE.CUSTOMER_ID = 'abcd'
)
ON (CHAT_LOG_TABLE.CUSTOMER_ID = CHAT_HISTORY_TABLE.CUSTOMER_ID)
WHEN MATCHED THEN
	UPDATE SET CHAT_HISTORY_TABLE.START_DT = CHAT_LOG_TABLE.START_DT,
    		   CHAT_HISTORY_TABLE.END_DT = CHAT_LOG_TABLE.END_DT;
WHEN NOT MATCHED THEN
	INSERT CHAT_HISTORY_TABLE.START_DT,CHAT_HISTORY_TABLE.END_DT
    VALUES CHAT_LOG_TABLE.START_DT, CHAT_LOG_TABLE.END_DT;



반응형