반응형
MySQL에서는 ON DUPLICATE KEY의 기능은
INSERT 시 Key 컬럼에 동일한 값이 존재하면
해당 Key에 해당하는 ROW에 INSERT가 아닌 UPDATE가 돌아가게 된다
오라클에서는 MERGE INTO라고 하면
어느정도 느낌이 올 것이다
이걸 사용해주려면 먼저 테이블에
Key를 지정해준 뒤 쿼리문을 작성해주면 되는데
MySQL Key 지정방법은 아래를 참고하고
쿼리는 다음과 같이 작성한다
INSERT INTO TB1(컬럼명) values (값)
ON DUPLICATE KEY -- PK 컬럼명에 중복이 들어올 시
UPDATE 컬럼명 = 값; -- 중복 컬럼의 ROW를 UPDATE
쿼리를 두번 수행해본 뒤 결과를 보면
첫 INSERT 시에는 테이블에 아무 내용이 없어서
'철수', 20이 들어갔지만
두번째 INSERT 시에는 철수라는 Key가 이미 존재하기 때문에
NAME이 '철수'인 ROW의 NAME이 중복, AGE가 99로 변경된 것이 보인다
마지막으로 예제에 사용한 쿼리는 아래와 같다
INSERT INTO TB1(NAME, AGE) values ('철수', 20)
ON DUPLICATE KEY
UPDATE NAME = '중복', AGE = 99;
SELECT * FROM TB1; -- 조회용
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL INNER LEFT RIGHT CROSS JOIN 사용방법 및 예제 (0) | 2021.01.08 |
---|---|
MySQL WITH 절 사용법 및 예제(가상 테이블) (1) | 2021.01.08 |
MySQL 조회 삽입 변경 삭제방법 정리 (0) | 2021.01.07 |
MySQL 테이블 제약조건 조회 추가 삭제 변경방법 정리 (0) | 2021.01.07 |
MySQL 테이블 생성 및 제약조건 설정방법 정리 (0) | 2021.01.07 |
댓글