반응형
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 |
---|