MySQL Multiple rows 를 one query 구현하기

MySQL 에 자료를 갱신할 일이 생겼다.

갱신할 자료를 가져와 배열에 담았다.
list = [adm, bay, car, del, ear]

이를 반복하면서 Update 를 했더니 오래 걸린다.
자료가 약 300 ~ 400 개인데 3~4초가 나온다.

검색을 해보니
INSERT INTO tb_temp (a, b, c) VALUES(1, 2, 3)
ON DUPLICATE KEY UPDATE c = c + 1

이걸 이용하면 된다고 한다.
뭐 반복문 돌면서 sql 하나의 문자열로 만들었다.

디비 결과는 중복 입력이었다.

다시 검색을 해보니 비교로 사용하는 첫번째 항목은 무조건 Primary 이어야 한다고 한다.
디비의 구조를 변경하였다.

다시 실행해보니 중복 없이 잘 갱신된다.
실행속도도 400개 정도가 1초 이내로 나온다.

댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?