기계는 거짓말하지 않는다

MySQL AUTO_INCREMENT 초기화, 정렬, 확인 본문

DB/MySQL

MySQL AUTO_INCREMENT 초기화, 정렬, 확인

KillinTime 2020. 12. 6. 23:47

테스트 시 AUTO_INCREMENT 설정한 테이블 컬럼을 초기화 하고 싶을때가 있다.

ALTER TABLE table_name AUTO_INCREMENT = 1;	# AUTO_INCREMENT 1 초기화

delete 를 많이 하지는 않지만 row 를 delete 할 경우 비게 되는데 그 자리의 숫자는 다시 채워지지 않는다.

한꺼번에 재정렬을 할 경우 사용자 지정 변수를 이용할 수 있다.

SET @CNT = 0;
UPDATE mytable SET table_name.auto_inc_column_name = @CNT := @CNT+1;	# 전체 재정렬

이후 AUTO_INCREMENT 를 마지막 할당된 다음 숫자로 초기화해준다. ex) 5일 경우 6으로

 

빠진 숫자 중 가장 작은 숫자를 알고싶다면 1씩 더해준 값과 포함 여부를 비교하면 알 수 있다.

SELECT MIN(auto_inc_column_name + 1)
FROM restaurant
WHERE (auto_inc_column_name + 1) NOT IN (SELECT auto_inc_column_name FROM table_name);

 

AUTO_INCREMENT 확인

SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'table_name';
# 현재 AUTO_INCREMENT 의 값

SELECT last_insert_id();	# 마지막으로 할당된 AUTO_INCREMENT 값

'DB > MySQL' 카테고리의 다른 글

MySQL 인덱스 추가  (0) 2021.03.08
MySQL 두 테이블의 count 결과 합계  (0) 2020.12.20
MySQL 외래키 제약조건 foreign key 수정, 삭제 오류  (0) 2020.12.20
MySQL ALTER TABLE  (0) 2020.12.06
MySQL Schema 생성, 선택, Table 생성  (0) 2020.12.02
Comments