INTRO
테이블을 생성 후, 중복 저장을 막기 위해 name에 unique키를 등록한다.
데이터베이스에서 대량의 데이터를 등록할 경우, 키 값이 있음에도 Insert문을 실행하게 되면 에러가 발생한다. 해결방법으로 테이블에 있는 데이터를 모두 삭제한 후 다시 집어넣는 방법이외에도 많겠지만 그것은 번거롭기도하며 위험요소도 생긴다.
따라서 키값이 있는 경우는 Insert가 아닌 Update를 해주는 방법을 사용하면 번거로운 일도 줄이고 에러도 줄일 수 있다.
테이블 준비
테이블을 생성 후, 중복 저장을 막기 위해 name에 unique키를 등록한다.
DROP
TABLE
tb_member;
CREATE
TABLE
tb_member (
mem_name
VARCHAR
(30)
, mem_job
VARCHAR
(30)
);
ALTER
TABLE
member
ADD
UNIQUE
(mem_name);
ON DUPLICATE KEY UPDATE 사용
INSERT INTO tb_member (
mem_name
, mem_job
) VALUES (
'홍길동'
, '기획자'
)
ON DUPLICATE KEY UPDATE
mem_job = '개발자';
위의 쿼리를 실행한 후, member 테이블을 조회하면 이름이 '홍길동'이고 직업이 '기획자'인 데이터가 추가된 것을 확인할 수 있다.
확인 후, 다시 위의 쿼리를 실행하면 그때는 '기획자'였던 홍길동의 직업이 '개발자'로 변경된 것을 확인할 수 있다.