테이블의 기본 키를 재설정한다는 것은 AUTO_INCREMENT 속성 값을 다시 1로 초기화하는 것을 의미합니다. MySQL에서는 ALTER TABLE 문을 사용하여 간단하게 처리할 수 있습니다.
기본 키 재설정 기본 문법
ALTER TABLE 테이블이름 AUTO_INCREMENT = 1;
예제 테이블 생성
먼저 이해를 돕기 위해 예제용 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE ResetPrimaryKey -> ( -> Id INT AUTO_INCREMENT, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.59 sec)
위 쿼리는 Id 컬럼에 AUTO_INCREMENT 속성과 기본 키(PRIMARY KEY)를 함께 설정한 테이블입니다.
테스트 데이터 삽입
이제 테이블에 레코드를 몇 개 삽입해 보겠습니다. 값을 지정하지 않고 삽입하면 AUTO_INCREMENT가 자동으로 순번을 부여합니다.
mysql> INSERT INTO ResetPrimaryKey VALUES(); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO ResetPrimaryKey VALUES(); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO ResetPrimaryKey VALUES(); Query OK, 1 row affected (0.09 sec) mysql> INSERT INTO ResetPrimaryKey VALUES(); Query OK, 1 row affected (0.09 sec)
삽입된 데이터 확인
SELECT 문을 사용하여 저장된 모든 레코드를 조회할 수 있습니다.
mysql> SELECT * FROM ResetPrimaryKey;
실행 결과는 다음과 같습니다. 기본 키인 Id 값이 1부터 순차적으로 증가한 것을 확인할 수 있습니다.
+----+ | Id | +----+ | 1 | | 2 | | 3 | | 4 | +----+ 4 rows in set (0.00 sec)
AUTO_INCREMENT 값 재설정하기
다음은 ALTER TABLE 문을 사용하여 테이블의 AUTO_INCREMENT 값을 1로 재설정하는 쿼리입니다.
mysql> ALTER TABLE ResetPrimaryKey AUTO_INCREMENT = 1; Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0
재설정 결과 확인
DESC 명령어로 테이블 구조를 확인하여 AUTO_INCREMENT 속성이 정상적으로 유지되고 있는지 검증할 수 있습니다.
mysql> DESC ResetPrimaryKey;
실행 결과는 다음과 같습니다.
+-------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | +-------+---------+------+-----+---------+----------------+ 1 row in set (0.11 sec)
참고 사항
AUTO_INCREMENT 값을 재설정할 때는 주의할 점이 있습니다. 만약 테이블에 이미 데이터가 남아 있고, 설정하려는 값이 현재 최대 Id 값보다 작다면 MySQL이 해당 설정을 무시할 수 있습니다. 따라서 일반적으로는 TRUNCATE TABLE로 데이터를 모두 삭제한 후 AUTO_INCREMENT를 재설정하거나, 테스트 환경에서 초기화 목적으로 사용하는 것이 안전합니다.