[MySQL/MariaDB] ON DUPLICATE KEY UPDATE
SQL 쿼리 작성시 PK키가 중복되는 경우 지정한 데이터만 INSERT가 아닌 UPDATE 시킬 수는 없을까?
ON DUPLICATE KEY UPDATE를 사용하면 된다.
ON DUPLICATE KEY UPDATE
INSERT시 PK나 UNIQUE KEY가 중복인 경우 원하는 컬럼만 UPDATE하고 중복되지 않은 경우에는 INSERT된다.
예시코드
1 | -- 테이블생성 |
테이블 tb_user에서 pk는 user_id이고 AUTO_INCREMENT이고 mobile이 UNIQUE KEY인 경우를 예시로 해보자.
이름과 휴대전화번호가 쌍으로 없는 경우 INSERT하고, 존재하는 경우 주소만 UPDATE하는 쿼리는 아래와 같다.
1 | INSERT INTO tb_user |
![[MySQL/MariaDB] ON DUPLICATE KEY UPDATE](/img/SQL.png)
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)