Upsert

5ERN·2023년 1월 8일
0

MySQL & SQL

목록 보기
2/3

프로젝트 도중 장바구니에 추가하는 기능을 구현하던 중, 장바구니에 상품이 없으면 INSERT를, 상품이 있다면 UPDATE를 사용해야 하는 상황이 있었다.
INSERT 와 UPDATE를 같이 사용한다는 것에 있어서 처음에는 쿼리를 두개 작성해야 하나 하고도 생각했지만 upsert를 이용하면 해결된다는 것을 알게되었다.

UPSERT란, 위에 서술한 내용과 같이 UNIQUE 키 값을 적용하고 해당 데이터가 비어있을 경우 INSERT, 데이터가 존재할 시 UPDATE를 적용시켜주는 방법이다.

기본 문법으론

INSERT INTO 테이블명 (컬럼명1,...) VALUE (컬럼명1의 값a,...) ON DUPLICATE KEY UPDATE 컬럼명="컬럼명1의 값b", ...

을 사용한다.

이를 풀어 해석하면,

값이 비어있을 경우 값a를 넣어주고, 만약 값이 있을 경우에는 값b 로 업데이트 한다 라는 것이 된다.

이때 UNIQUE 설정을 꼭 해둬야 하며, (그래야 중복되지 않으니) 위의 문법은 MySql에서만 해당됨을 알아두자!

profile
응애개발자

0개의 댓글