MySQL, MariaDB의 INSERT INTO … ON DUPLICATE KEY UPDATE …

MySQL(MariaDB)에서 동일한 Key 값이 이미 존재한다면 UPDATE 문을 호출하여 기존의 Row의 값을 변경하고, 동일한 Key 값을 가진 Row가 없다면 INSERT를 호출하는 SQL 문의 예입니다.

INSERT INTO 
    current_load_powerfactor 
    (ref_mRID, update_timeStamp, value) 
VALUES
    ("_1e1ccab5-250a-44a3-89d8-177e2d53e071", NOW(), 99) 
ON DUPLICATE KEY UPDATE 
    update_timeStamp=NOW(), value=99

위의 SQL은 current_load_powerfactor라는 테이블에 대해서, Primary Key로 잡힌 ref_mRID가 중복된 이미 존재하는 Row가 있다면, 중복된 Row의 값을 변경(UPDATE 문 실행)하고, 중복된 Row가 없다면 새로운 Row를 추가(INSERT)하라는 내용입니다.

“MySQL, MariaDB의 INSERT INTO … ON DUPLICATE KEY UPDATE …”에 대한 2개의 댓글

  1. 안녕하세요 개발자님. 저는 출판사 비제이퍼블릭의 편집자 이동원이라고 합니다.
    비제이퍼블릭은 IT 개발서 전문 출판사로, 온라인 서점에서 ‘비제이퍼블릭’으로 검색해보시면 그간의 출간 내역을 확인하실 수 있고,
    홈페이지 http://www.bjpublic.co.kr
    블로그 http://bjpublic.tistory.com
    페이스북 https://www.facebook.com/Bjpublic.co.kr/
    을 통해서도 정보를 얻으실 수 있습니다.

    개발자님께서 블로그에 올리신 MariaDB 관련 내용을 보고 콘텐츠가 도서로 출간해도 경쟁력이 있을 것으로 생각되어
    이렇게 집필을 제의드리게 되었습니다.

    지금 제의 드리는 기획 외에도, 개발자님께서 따로 생각 중이신 기획안이 있으시다면 마찬가지로 논의 가능합니다. 집필 기간은 통상
    3~6개월로 잡지만 개발자님의 사정에 따라서 더 늘려 잡으셔도 괜찮습니다. 생각해보시고 괜찮으시다면 010-9553-3757이나
    whitecooky@bjpublic.co.kr로 회신 부탁드립니다.

    아무쪼록 긍정적으로 검토하여 주시기를 바라며 이만 줄이겠습니다. 감사합니다.
    이동원 드림

    1. 안녕하세요.
      IT도서를 많이 접하는 저로써 비제이퍼블릭은 좋은 기억이 많습니다.
      제안 감사드립니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다