본문 바로가기
Database/MySQL

[MySQL] auto_increment 값을 재설정 하는 방법

by SpiralMoon 2019. 10. 23.
반응형

 주제 : auto_increment 값을 재설정 하는 방법.

 

MySQL에서 auto_increment 속성이 지정된 column을 수정하는 방법에 대해 알아보자.

 

▶ 간단 auto_increment 설명

 

auto_increment 속성은, row 데이터가 저장될 때 지정된 column에 대하여 자동으로 값을 증가시키는 속성이다.

 

만약에 어떤 table의 A라는 column에 auto_increment가 지정되어 있다면,

첫 번째로 저장된 row의 A는 1이고 두 번째로 저장된 row의 A는 2가 될 것이다.

 

auto_increment의 자세한 설정 방법은 아래 사이트에서 확인 바람.

 

MySQL :: MySQL 8.0 Reference Manual :: 3.6.9 Using AUTO_INCREMENT

3.6.9 Using AUTO_INCREMENT The AUTO_INCREMENT attribute can be used to generate a unique identity for new rows: CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO animals (name) VALUES ('dog

dev.mysql.com

 

▶ 상황

 

하나의 column에 auto_increment 속성과 primary key 속성을 중첩해서 사용중인 경우엔 고유성이 성립되므로 재설정이 반드시 필요한 상황이 생기지는 않는다.

단, row를 추가했다가 삭제해서 다음 순서의 auto_increment가 증가되어버린 경우에 증가되어버린 값을 원래대로 돌리기 위하여 재설정이 필요할 수는 있다.

 

▶ auto_increment를 확인하는 방법

show table status where name = '테이블명'

위 쿼리를 통해서 다음 row에 지정될 auto_increment의 값을 확인할 수 있다.

DataGrip에서 실행한 모습

위 사진의 오른쪽 파란 원을 보면 값이 1로 설정되있는 것을 볼 수 있다. 여기서는 다음 row의 값을 확인하는 것이므로 아마 지금 table에는 row가 하나도 없을 것이다.

 

▶ auto_increment를 재설정하는 방법

alter table 테이블명 auto_increment = 정수값;

위 쿼리를 통해서 값을 재설정 할 수 있다.

 

바로 응용해보자.

rrd_index라는 column에 auto_increment가 적용된 상태이다. 이 상태에서는 다음 row의 값은 6으로 설정되어있을 것이다.

예상대로 6으로 설정되어 있다. 이 상태에서 값이 5인 row를 삭제한 다음 새로운 row를 하나 추가해보자.

이전 row의 값이 4임에도 5가 아닌 6으로 설정되있는 모습을 볼 수 있다. auto_increment가 과거 값을 신경쓰지 않고 무조건 단순 증가 연산만 수행하기 때문이다.

여기서 다시 마지막 row를 지우고, alter table 테이블명 auto_increment = 5; 쿼리를 써서 5로 재설정 한 뒤, row를 새롭게 추가해보자.

재설정한 값인 5로 되돌아와서 저장된 모습이다.

반응형

댓글