INSERT ON DUPLICATE KEY UPDATE 사용
업무를 하며 INSERT 또는 UPDATE를 하기 위해 DUPLICATE KEY UPDATE를 사용한다.
오라클 DB를 사용할 때는 MERGE INTO를 사용했는데 그 유사한 기능이라고 생각하면 되겠다.
PRIMARY KEY 중복이 발생하게 되면 UPDATE를 실행하게 되고 중복 된 PRIMARY KEY가 없을 경우에는 INSERT 하게 된다.
예시 1
INSERT INTO A_TABLE (A,B,C) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE C = C+1;
/* UPDATE시 아래와 유사한 동작을 한다 */
UPDATE A_TABLE SET C=C+1 WHERE A=1;
예시 2 - Aliases 사용
INSERT INTO A_TABLE (A,B,C) VALUES (1,2,3),(4,5,6) AS new(M,N,P)
ON DUPLICATE KEY UPDATE C = M+N;
간단하면서 직관적이라 사용하기 쉽고 빠르게 처리 할수 있는 방법이라 기록 한다.
참고사이트
https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
'Database > MySQL' 카테고리의 다른 글
[MySQL] REPLACE INTO, DELETE INSERT 대체 (0) | 2023.05.03 |
---|---|
[MySQL] TEMPORARY TABLE 사용하기 #2 (BULK INSERT) (0) | 2023.04.07 |
[MySQL] TEMPORARY TABLE 사용하기 #1 (0) | 2023.04.06 |