반응형
ON DUPLICATE KEY UPDATE란?
데이터 삽입시에 PK나 UK가 중복되었다면 지정 데이터만 업데이트 해주는 명령어이다.
단, 중복된 키가 없을경우 insert를 실행하니 잘만 사용하면 insert, update 구문을 따로 작성할 필요가 없게 구현할수 있다.
사용법
CREATE TABLE BOOK (
bId INT AUTO_INCREMENT primary KEY,
bName VARCHAR(50) UNIQUE KEY,
bPrice INT NOT NULL DEFAULT 0,
);
꼴의 테이블이 있다면,
INSERT INTO BOOK (bName, bPrice) VALUES ('chaos_theory', 23000)
ON DUPLICATE KEY UPDATE price = price + 5000;
꼴로 작성해두면 된다.
쿼리를 처음 실행시 insert 구문이 작동하며, 쿼리를 두번이상 실행하면 on dup 구문만 실행되어 price만 증가한다.
재밋는 점은, PK가 복합키여도 작동한다는 점이다.
자매품 INSERT IGNORE(키 중복시 아예 인서트 무시), REPLACE INTO(기존 레코드 삭제 후 새로 입력하지만, AI는 증가)도 있다.
반응형
'Database' 카테고리의 다른 글
MySQL] 조인(Table join) 종류 (0) | 2023.01.25 |
---|---|
Mybatis) 조건문 if-else -> choose-when-otherwise (0) | 2022.08.21 |
[MySQL] 복합키 설정하기 [짧] (0) | 2022.05.23 |
Procedure 기본 (0) | 2022.05.03 |
[MySQL] 방금 수행한 질의 대상 얻어오기 (0) | 2021.08.04 |