bulk insert는 아래에서 포스팅함
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값이 변함
'SQL > RDBMS' 카테고리의 다른 글
[Oracle] 제약 조건 (조회, 추가, 수정, 삭제) (0) | 2023.03.16 |
---|---|
java.sql.SQLSyntaxErrorException: ORA-00911: 문자가 부적합합니다 (1) | 2023.03.14 |
[MySQL/MARIADB, MSSQL, ORACLE] DB별 예약어나 특수문자가 포함된 컬럼명 표현, 네이밍 규칙 (0) | 2023.03.14 |
BLOB데이터 들고오기(JAVA ExecuteQuery) (0) | 2022.12.17 |
bulk insert (0) | 2022.05.28 |