SQL/RDBMS
(MariaDB, MySQL)on duplicate key update(With bulk insert), insert ignore, replace into
dddzr
2022. 6. 11. 10:03
bulk insert는 아래에서 포스팅함
bulk insert
Bulk Insert는 쿼리 전후로 이루어지는 작업들을 줄여줘서 반복문으로 쿼리를 여러번 날리는 것보다 속도가 빠름. sql values에 값들을 배열로 넣어주기 INSERT INTO TABLENAME(COL1, COL2) VALUES (col11, col21)..
sumni.tistory.com
1. ON DUPLICATE KEY UPDATE
데이터 삽입 시, PRIMERY KEY나 UNIQUE KEY가 중복되었을 경우 UPDATE, 중복된 키가 없을 경우 INSERT
해당 key에 업데이트 할 값을 직접 입력, values에 넣은값과 다른 값 지정해도 됨.
INSERT INTO table(table.col1, table.col2, table.col3, table.col4)
VALUES ('key1','key2','valueA','valueB')
ON DUPLICATE KEY UPDATE
table.col3 = 'valueA',
table.col4 = 'valueB'
with bulk insert
데이터가 여러개라 value를 직접쓸 수 x, TABLE_NAME.COL_NAME으로 지정
INSERT INTO table(table.col1, table.col2, table.col3, table.col4)
VALUES ('key1','key2','valueA','valueB'), ('key1','key3','valueA2','valueB2')
ON DUPLICATE KEY UPDATE
table.col3 = VALUES(table.col3),
table.col4 = VALUES(table.col4)
2. INSERT IGNORE
KEY가 중복되었을 경우 INSERT 무시
INSERT IGNORE INTO table (col1, col2, col3) VALUES (val1, val2, val3);
3. REPLACE INTO
KEY가 중복되었을 경우 해당 레코드를 삭제하고 다시 삽입
REPLACE INTO table (col1, col2, col3) VALUES (val1, val2, val3);
*삭제후 새로 삽입이라 AUTO_INCREMENT로 ID(PK)값을 지정했을 경우 ID값이 변함