반응형
- DUPLICATE ON KEY UPDATE -
데이터가 있으면 UPDATE 없으면 INSERT 처리를
제어할 수 있는 DUPLICATE ON KEY UPDATE 구문이
어찌 보면 오라클의 MERGE INTO 구문과 비슷하다고 느껴진다.
해당 구문에 대해 알아보자
INSERT INTO [TABLE] (COLUMN1, COLUMN2, ...)
VALEUS (VALUE1, VALUE2, ...)
ON DUPLICATE KEY
UPDATE (COLUMN1 = VALUE1 , COLUMN2 = VALUE2, ...)
기존 INSERT INTO 구문에 뒷부분에 추가해서 써주기만하면 된다.
성능면에서도 괜찮은 구문이라는 말이 많다.
예)
CREATE TABLE MINE(
id VARCHAR(10) PRIMARY KEY,
name VARCHAR(10),
salary NUMBER
)
간단하게 테이블 하나를 만들어놓고 시작해보자
INSERT INTO MINE VALUES ("CD2", "HAN", 20000)
ON DUPLICATE KEY
UPDATE name = "KIM" , salary = 300000
위의 쿼리를 그대로 실행하면
id | name |
salary |
CD2 |
HAN |
20000 |
이러한 결과가 나오며
해당 쿼리를 다시한번 실행하게 되면
id | name |
salary |
CD2 |
KIM |
300000 |
이런식으로 값이 변한것을 확인이 가능하다.
추가적으로 실험은 해보지 않았지만
key 필드 값 역시 뒤에 UPDATE 구문에 써줄수 있다.
반응형
댓글