pbj0812의 코딩 일기

[SQL] MySQL UPSERT 실습 본문

ComputerLanguage_Program/SQL

[SQL] MySQL UPSERT 실습

pbj0812 2020. 8. 10. 00:20

0. 목표

 - UPSERT를 이용하여 값을 업데이트하기

1. 실습

 1) 테이블 생성

CREATE TABLE pbj_db.upsert_test
(
    id INT,
    myname VARCHAR(32)
);

 2) 유니크 키 할당

  - 이 과정을 생략할 경우 UPSERT 방식이 작동하지 않음

ALTER TABLE pbj_db.upsert_test ADD UNIQUE (id);

 3) UPSERT 구문

  - pbj_db.upsert_test 테이블에 1, 'a'를 넣고 만약 존재한다면 1, 'abc'로 업데이트

INSERT INTO pbj_db.upsert_test values(1, 'a') 
ON DUPLICATE KEY UPDATE id=1, myname='abc';

 4) 확인

SELECT * FROM pbj_db.upsert_test;

  - 결과

 5) UPSERT 구문 재실행

  - 3)과 동일

INSERT INTO pbj_db.upsert_test values(1, 'a') 
ON DUPLICATE KEY UPDATE id=1, myname='abc';

 6) 확인

SELECT * FROM pbj_db.upsert_test;

  - 결과

2. 참고

 - [Upsert] 값이 없으면 Insert 하고, 값이 있으면 update 하기

Comments