반응형
Intro
데이터베이스에서 대량의 데이터를 등록할 때 기존에 값이 이미 있는 경우 등록하려는 데이터에 Unique 키 값은 같은데 데이터가 다를 경우가 있습니다. 이 때 내가 원하는 건 없는 데이터는 INSERT
하고 기존에 있는 데이터는 키 값을 비교하여 UPDATE
하고 싶습니다. 그 때 사용하는 쿼리가 INSERT INTO ON DUPLICATE KEY UPDATE
입니다.
INSERT INTO ON DUPLICATE KEY UPDATE 사용
KEY | DATA1 | DATA2 | DATA3 |
---|---|---|---|
VARCHAR | INT | INT | INT |
위와 같은 구조의 테이블이 있다고 하고 아래의 쿼리문을 실행시키면
INSERT INTO tb_code(CODE, DATA1, DATA2, DATA3)
VALUES ('test_code2', 100, 100, 100)
ON DUPLICATE KEY UPDATE DATA1=100, DATA2=120, DATA3=115;
위와 같이 데이터가 생성되는 것을 알 수 있습니다. 그 이후 다시 한번 저 쿼리문을 실행시키면
위와 같이 해당 키의 값을 찾아서 UPDATE
하게 됩니다. 해당 쿼리문은 테이블에 데이터들이 이미 존재할 때 변경해야하는 데이터나 새로 삽입해야 하는 데이터들을 한 번에 UPDATE
하고 싶을 때 유용하게 사용할 수 있습니다.
반응형
'프로그래밍 > MySQL' 카테고리의 다른 글
[MySQL] JOIN 이란? (INNER, OUTER, CROSS) (0) | 2021.08.09 |
---|
댓글