[MySQL] AUTO_INCREMENT 초기화하는 방법

2023. 4. 27. 16:50·MySQL

 

이번 포스팅은 근본적인 문제 해결은 아니지만, PK의 값을 초기화하고 1부터 연속적인 수로 바꾸는 방법에 대한 글입니다.

서론

보통 스키마를 구성할 때, PK에 `auto_increment`를 설정하는 경우가 많습니다.

`auto_increment`는 편리함을 제공하지만 `INSERT IGNORE 문`을 사용했을 때, 또는 `UPSERT 문`을 사용했을 때 따라오는 `ON DUPLICATE KEY UPDATE` 에 의해 중복 데이터를 INSERT 하지 못함에도 PK 값은 `+1 씩 증가`하게 됩니다.

 

auto_increment 초기화 쿼리

ALTER TABLE [테이블] AUTO_INCREMENT=1; -- [테이블]의 AUTO_INCREMENT를 1로 초기화한다.
SET @CNT = 0;  -- @CNT 변수의 값을 0으로 초기화한다.
UPDATE [테이블]
SET [테이블의 PK] = @CNT:=@CNT+1;  -- [테이블의 PK]를 위에서 저장한 @CNT 값을 이용해 +1 씩 증가시킨다.

 

위의 쿼리를 사용하면 PK를 1부터 연속적인 숫자로 UPDATE 하여 쓸 수 있습니다.

 

읽어주셔서 감사합니다.

'MySQL' 카테고리의 다른 글

[스터디] Real MySQL 8.0 1권 - 5장 트랜잭션과 잠금 정리  (0) 2024.09.23
[MySQL] INSERT 할 때, 마지막 PK 값에서 1씩 증가시키는 방법  (1) 2023.04.27
[MySQL] 테이블 내 중복 데이터 삭제  (0) 2023.04.27
[MySQL] 프로세스 확인과 프로세스 죽이기  (2) 2022.09.30
[MySQL] 계정 조회, 계정 생성, 계정 삭제, 권한 조회, 권한 부여, 권한 삭제  (0) 2022.09.30
'MySQL' 카테고리의 다른 글
  • [스터디] Real MySQL 8.0 1권 - 5장 트랜잭션과 잠금 정리
  • [MySQL] INSERT 할 때, 마지막 PK 값에서 1씩 증가시키는 방법
  • [MySQL] 테이블 내 중복 데이터 삭제
  • [MySQL] 프로세스 확인과 프로세스 죽이기
옐리yelly
옐리yelly
전시회에서 도슨트를 따라다니며 작품 해설을 들으면 더 재밌었던 기억들이 있습니다. 글로 더 재밌는 개발이 되도록 노력하고 있습니다.
  • 옐리yelly
    개발 갤러리
    옐리yelly
  • 전체
    오늘
    어제
    • 모든 글 보기 (82)
      • Project (22)
      • Java (4)
      • Spring (6)
      • Kubernetes (6)
      • Docker (2)
      • JPA (2)
      • Querydsl (2)
      • MySQL (8)
      • ElasticSearch (7)
      • DevOps (4)
      • Message Broker (3)
      • Git & GitHub (2)
      • Svelte (1)
      • Python (8)
        • Python Distilled (4)
        • Anaconda (1)
        • Django (0)
        • pandas (3)
      • Algorithm (1)
      • Computer Science (0)
      • 내 생각 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    argocd
    프로젝트
    elasticsearch
    MySQL
    blue-green 배포
    nks
    pymysql
    gitops
    Project
    데드락
    성능 테스트
    예약 시스템
    Spring
    dataframe
    리팩토링
    JPA
    docker
    svelte
    querydsl
    k8s
    포텐데이
    RabbitMQ
    devops
    비사이드
    Message Broker
    커넥션 풀
    Python
    ncloud
    pandas
    OOP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
옐리yelly
[MySQL] AUTO_INCREMENT 초기화하는 방법
상단으로

티스토리툴바