반응형
조건에 따라 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;
반응형