반응형

RDBMS에선 데이터를 쌓는데 Primary Key가 설정된 컬럼에 한하여 데이터 생성 시, 자동으로 숫자가 증가하게 하는 설정이 가능하다.

설정하는 방법은 간단하며, 테이블 생성 시 증가될 컬럼에 auto_increment를 입력하면 된다.

 

테이블을 생성할 DB에 아래와 같은 형식으로 auto_increment를 설정할 수 있다.

다만, 여기서 주의할 사항은 auto_increment의 경우는 PK로 지정된 컬럼만 사용 가능하고 그 외에는 에러가 발생한다.

CREATE TABLE land.`user` (
	idx bigint(20) auto_increment NULL,
	CONSTRAINT user_pk PRIMARY KEY (idx)
)

 

이런 형태로 테이블을 생성하여, 데이터를 쌓다보면 idx (키 값)이 1씩 늘어나는 것을 볼 수 있는데,
1, 2, 3 중에 3을 삭제하고 재 생성하는 경우 3이 생성되는 게 아닌 4부터 데이터가 생성되는 것을 볼 수 있다.

이러한 것을 방지하거나 혹은 재정리하기 위해 auto_increment 값을 초기화할 필요가 있다.

ALTER TABLE land.user AUTO_INCREMENT = 3;

해당 문장같은 형태로 ALTER문을 사용하여, 강제로 원하는 키 값을 지정해줄 수 있다.

ALTER TABLE land.user AUTO_INCREMENT = 1;
SET@COUNT = 0;
UPDATE land.USER SET idx = @COUNT:=@COUNT+1

다른 방식으로 auto_increment를 1부터 재조정하면서 여태 idx 값들을 전체적으로 재조정할 수도 있다.

 

크게 어려운 방법은 아니지만 idx 값은 현업에서는 다른 테이블과 연동될 수 있기 때문에, 전체적인 값 조정은 데이터를 매핑시키는데 조금 위험도가 존재하므로 조심스럽게 다룰 필요가 있다.

반응형

'데이터베이스 > Mysql' 카테고리의 다른 글

데이터 삭제 (DELETE, TRUNCATE, DROP)  (0) 2021.05.20

+ Recent posts