• 북마크

WEB

[MySQL]값이 없으면 Insert, 값이 있으면 Update - on duplicate key update

지니야
2019.06.21 08:45 198 0

본문

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 테이블을 조회하면 이름이 '홍길동'이고 직업이 '기획자'인 데이터가 추가된 것을 확인할 수 있다.

확인 후, 다시 위의 쿼리를 실행하면 그때는 '기획자'였던 홍길동의 직업이 '개발자'로 변경된 것을 확인할 수 있다.

 



댓글목록 0

등록된 댓글이 없습니다.
전체 60 건 - 1 페이지
제목
지니야 172 2019.07.24
지니야 181 2019.07.24
지니야 132 2019.07.14
지니야 116 2019.07.14
지니야 219 2019.07.14
지니야 115 2019.07.13
지니야 138 2019.06.27
지니야 199 2019.06.21
지니야 298 2019.06.21
지니야 319 2019.03.20
지니야 237 2019.03.19
지니야 261 2019.03.19
지니야 304 2019.03.10
최고관리자 563 2019.02.02
최고관리자 555 2019.02.02
최고관리자 314 2019.01.26
최고관리자 438 2019.01.24
최고관리자 333 2019.01.24
최고관리자 712 2019.01.24
최고관리자 522 2019.01.08