작성완료

MySQL UPSERT (있으면 수정, 없으면 저장)
Upsert는 중복되는 값이 있을 경우 UPDATE를 하고, 없을 경우 INSERT를 수행하는 쿼리이다. 문법은 INSERT INTO 테이블명 (필드1, 필드2) VALUES (필드값1, 필드값2) ON DUPLICATE KEY UPDATE 필드2 = 필드값2로, 필드1을 Unique Key로 설정하여 중복 체크를 한다.
Upsert
Upsert는 이름에서 어느정도 유추할 수 있듯이 Update + Insert를 합친 말이다.
즉, Upsert는 중복되는 값이 있다면 Update를 하고 중복되는 값이 없다면 Insert를 하는 쿼리이다.
Unique Key의 값이 중복된다면 `UPDATE
를 하고,
Unique 컬럼의 값이 존재하지 않는다면
INSERT
를 하는 것이다.
(만약 컬럼에 Unique Key를 설정하지 않았다면 값은 계속 중복해서
INSERT`가 된다.)
문법
INSERT INTO 테이블명 (필드1, 필드2)
VALUES (필드값1, 필드값2) ON DUPLICATE KEY
UPDATE 필드2 = 필드값2
위 쿼리문은 필드1의 값을 Unique Key로 설정해 놓은 상태로 필드1의 값을 중복 체크하여 중복되면 필드2의 값을 필드값2으로 UPDATE하고, 중복되지 않으면 필드1은 필드값1, 필드2은 필드값2의 데이터를 INSERT하게 된다.