본문 바로가기
RDB/MySQL

[MySQL] UPSERT(UPDATE + INSERT) 쿼리

by kigo23 2023. 4. 13.
반응형

UPSERT 쿼리는 UNIQUE KEY값이 없으면 INSERT 있으면 업데이트를 실행하는 쿼리입니다.

 

예를들어 id필드가 유니크 키일때 다음과 같은 UPSERT 쿼리를 보냅니다.

INSERT INTO TABLE (id, col1, col2)
VALUES (1, '값1', '값2') ON DUPLICATE KEY
UPDATE col1 = '값1', col2 = '값2'

만약 테이블에 id가 1인 값이 존재하지 않는다면 INSERT 쿼리로 처리되고,

id가 1인 값이 존재한다면 UPDATE 쿼리로 처리됩니다.

 

IF문을 사용한다면 SELECT를 통해 해당 값의 존재 여부를 체크 후 INSERT를 할지 UPDATE를 할지 결정하여야 합니다.

반면 UPSERT는 불필요한 조회를 줄이고 쿼리를 간결하게 표현할 수 있습니다.

 

'RDB > MySQL' 카테고리의 다른 글

[AWS x MySQL] AWS RDS 프리티어 생성하기  (0) 2023.05.12
[MySQL] 날짜 더미데이터 만들기  (0) 2023.04.18