반응형
INTRO
member라는 테이블을 생성 후, 중복 저장을 막기 위해 name에 unique(or primary key)키를 등록한다.
데이터베이스에서 대량의 데이터를 등록할 경우, 키 값이 있음에도 Insert문을 실행하게 되면 에러가 발생한다. 해결방법으로 테이블에 있는 데이터를 모두 삭제한 후 다시 집어넣는 방법이외에도 많겠지만 그것은 번거롭기도하며 위험요소도 생긴다.
따라서 키값이 있는 경우는 Insert가 아닌 Update를 해주는 방법을 사용하면 번거로운 일도 줄이고 에러도 줄일 수 있다.
테이블 준비
테이블을 생성 후, 중복 저장을 막기 위해 name에 unique(or primary key)키를 등록한다.
DROP TABLE member;
CREATE TABLE member (
name VARCHAR(30)
,job VARCHAR(30)
);
ALTER TABLE member ADD UNIQUE (name);
ON DUPLICATE KEY UPDATE 사용
INSERT INTO member (
name
, job
) VALUES (
'CROCUS'
, '개발자'
)
ON DUPLICATE KEY UPDATE
job = '실무자';
위의 쿼리를 총 2번 실행해보자.
처음에는 CROCUS라는 name이 테이블에 없으므로 중복값 처리 없이 그대로 CROCUS, 개발자가 들어갈 것이다.
하지만 두번째 쿼리때는 CROCUS가 존재하므로 개발자->실무자 로 업데이트 되어 테이블에 들어가게 될 것이다.
반응형
'Applied > Database' 카테고리의 다른 글
[MongoDB] 스키마 정의 없는 model 만들기 (0) | 2022.03.17 |
---|---|
[MongoDB] Ubuntu에 MongoDB 설치하기 (0) | 2022.03.15 |
데이터베이스 모델링 개념 (0) | 2020.08.05 |
[Programmers] 입양 시각 구하기(1) (0) | 2019.11.03 |
[Programmers] 이름에 el이 들어가는 동물 찾기 (0) | 2019.10.29 |