반응형
Greensky0026
삽질러의 대환장 공사판
Greensky0026
전체 방문자
오늘
어제
  • 분류 전체보기 (241)
    • Language (56)
      • JAVA (13)
      • Swift (38)
      • Kotlin (4)
      • Dart (0)
      • PHP (0)
      • JavaScript (1)
    • IDE & Framework (92)
      • Spring (10)
      • Android (48)
      • iOS (8)
      • NodeJS (1)
      • CodeIgniter (3)
      • Flutter (1)
      • 분류중 (18)
    • Infra (8)
    • Database (12)
    • VCS (4)
    • Debug Log (34)
      • java (7)
      • swift (3)
      • Android (9)
      • Web (7)
      • 삽질기 (7)
    • Others (19)
      • 코딩테스트 풀이 (0)
      • IT 이야기 (18)
    • 쉼터 (2)
    • 개발공부 (14)
      • Network (1)
      • 자료구조와 알고리즘 (2)
      • Code design (8)
      • ETC (1)
      • 아카이브 (1)

블로그 메뉴

    공지사항

    • 프로그래머스 코딩 테스트 관련글 비공개 처리

    인기 글

    태그

    • map
    • 타입
    • kotlin
    • swfit
    • IT
    • 프로그래머스
    • 프로그래밍
    • level1
    • 예제
    • 코딩테스트
    • ios
    • xcode
    • Android
    • 개발
    • 공부
    • swift
    • JSP
    • 구축
    • reduce
    • Java

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Greensky0026

    삽질러의 대환장 공사판

    [MySQL] ON DUPLICATE KEY UPDATE [짧]
    Database

    [MySQL] ON DUPLICATE KEY UPDATE [짧]

    2022. 5. 23. 18:53
    반응형

    ON DUPLICATE KEY UPDATE란?

     데이터 삽입시에 PK나 UK가 중복되었다면 지정 데이터만 업데이트 해주는 명령어이다.

    단, 중복된 키가 없을경우 insert를 실행하니 잘만 사용하면 insert, update 구문을 따로 작성할 필요가 없게 구현할수 있다.

     

    사용법

    CREATE TABLE BOOK (
    	bId INT AUTO_INCREMENT primary KEY,
    	bName VARCHAR(50) UNIQUE KEY,
    	bPrice INT NOT NULL DEFAULT 0,
    );

    꼴의 테이블이 있다면,

    INSERT INTO BOOK (bName, bPrice) VALUES ('chaos_theory', 23000) 
    ON DUPLICATE KEY UPDATE price = price + 5000;

    꼴로 작성해두면 된다.

    쿼리를 처음 실행시 insert 구문이 작동하며, 쿼리를 두번이상 실행하면 on dup 구문만 실행되어 price만 증가한다.

    재밋는 점은, PK가 복합키여도 작동한다는 점이다.

     

    자매품 INSERT IGNORE(키 중복시 아예 인서트 무시), REPLACE INTO(기존 레코드 삭제 후 새로 입력하지만, AI는 증가)도 있다.

    반응형
    저작자표시 비영리

    'Database' 카테고리의 다른 글

    MySQL] 조인(Table join) 종류  (0) 2023.01.25
    Mybatis) 조건문 if-else -> choose-when-otherwise  (0) 2022.08.21
    [MySQL] 복합키 설정하기 [짧]  (0) 2022.05.23
    Procedure 기본  (0) 2022.05.03
    [MySQL] 방금 수행한 질의 대상 얻어오기  (0) 2021.08.04
      'Database' 카테고리의 다른 글
      • MySQL] 조인(Table join) 종류
      • Mybatis) 조건문 if-else -> choose-when-otherwise
      • [MySQL] 복합키 설정하기 [짧]
      • Procedure 기본
      Greensky0026
      Greensky0026
      점이 모여 선이 된다. 내 삽질도 언젠간 거대한 지하 도시가 되겠지!

      티스토리툴바