2016년 12월 20일 화요일

MySQL 의 ON DUPLICATION KEY UPDATE 에 대해서...

MySQL의 INSERT ~ ON DUPLICATE KEY UPDATE ~ 는 보통 다음과 같이 사용된다.

INSERT INTO TALBE ( a, b, c ) VALUES ( 'a', 'b', 'c' ) ON DUPLICATE KEY UPDATE b = 'b2', c = 'c2';

a field 에 UNIQUE INDEX 가 걸려있고 INSERT 시 a 를 중복해서 넣으려고 하면 b에는 b2, c에는 c2라는 값을 넣는 Query이다.

INSERT 를 한개만 하는 경우라면 위와 같이 Query를 만들어도 되지만,

INSERT가 여러개인 경우는 다음과 같이 프로그램을 만들어야 한다.

INSERT INTO TABLE ( a, b, c, ) VALUES ( 'a1', 'b1', 'c1' ), ( 'a2', 'b2', 'c2' ) ON DUPLICATE KEY UPDATE b = VALUES(b), c = VALUES(c);

각각의 INSERT 데이터가 VALUES 에 매칭되어 업데이트 된다.