INSERT 쿼리 시 PK가 중복되는 경우가 있다.
에러를 방지하기 위해 여러 옵션을 적용할 수 있는데, 그 중 유용한 옵션이 'ON DUPLICATE KEY UPDATE' 다.
다음과 같이 'name'이 PK인 테이블이 있다고 하자.
이름이 '민수'인 row의 power가 이상하다. '엄청 강'이 아닌, '엄청 강함'으로 수정되어야 한다.
UPDATE문을 쓸 수도 있겠지만, 데이터양이 크다면 일일이 조건을 걸어 수정하기도 어렵다.
이 때 전체 데이터를 통째로 INSERT하고, PK가 겹친다면 다른 컬럼값을 자동으로 업데이트해주는 기능이 위의 옵션이다.
INSERT INTO teset VALUES('민수', '36', '엄청 강함')
ON DUPLICATE KEY UPDATE power=VALUES(power);
위와 같이 ON DUPLICATE KEY UPDATE 뒤에 [컬럼]=VALUES([컬럼])을 붙이면 된다.
PK가 중복될 경우 뒤에 적은 컬럼의 값을 UPDATE 해주므로 유용하게 쓸 수 있다.
쿼리 실행 결과 아래와 같이 정상적으로 변경되어 INSERT되었다.
'Study' 카테고리의 다른 글
[Python] 날짜 다루기 - strftime, strptime (0) | 2022.07.22 |
---|---|
[Python] string을 dictionary로 바꾸는 방법 (0) | 2022.07.20 |
[Python] Sort 리스트 정렬 (오름차순, 내림차순) (0) | 2022.07.12 |
[Pandas] 데이터프레임 인덱스 재설정 (0) | 2022.07.07 |
문자열에서 특정 문자열 삭제하는 네 가지 방법 (0) | 2022.07.05 |
댓글