Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블 TRUNCATE 후 AUTO_INCREMENT 시작 값을 원하는 숫자로 설정하는 방법

MySQL에서 테이블을 TRUNCATE로 비운 뒤, AUTO_INCREMENT(자동 증가) 시작 값을 원하는 특정 숫자로 변경하고 싶은 경우가 종종 있습니다. 예를 들어, 새로운 데이터를 1번이 아닌 2000번부터 시작하게 만들고 싶다면 ALTER TABLE 문을 활용하면 됩니다. 이 글에서는 전체 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 AUTO_INCREMENT가 적용된 기본키 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable825(Value int NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.63 sec)

2. 샘플 데이터 삽입 및 확인

INSERT 문을 사용해 몇 개의 레코드를 추가해 보겠습니다. AUTO_INCREMENT 컬럼은 값을 명시하지 않아도 자동으로 번호가 매겨집니다.

mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.11 sec)

SELECT 문으로 저장된 데이터를 확인합니다.

mysql> select *from DemoTable825;

실행 결과는 다음과 같습니다. 값이 1부터 차례대로 증가한 것을 볼 수 있습니다.

+-------+
| Value |
+-------+
|     1 |
|     2 |
|     3 |
+-------+
3 rows in set (0.00 sec)

3. 테이블 TRUNCATE 하기

TRUNCATE는 테이블의 모든 데이터를 삭제하면서 AUTO_INCREMENT 카운터도 초기화합니다. 아래 쿼리를 실행합니다.

mysql> truncate table DemoTable825;
Query OK, 0 rows affected (0.58 sec)

4. AUTO_INCREMENT 시작 값 변경하기

이제 ALTER TABLE 문으로 자동 증가 시작 값을 2000으로 설정합니다.

mysql> alter table DemoTable825 auto_increment=2000;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

5. 결과 확인하기

변경된 설정이 제대로 적용되었는지 다시 데이터를 삽입한 후 확인해 보겠습니다.

mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable825 values();
Query OK, 1 row affected (0.09 sec)
mysql> select *from DemoTable825;

실행 결과입니다. 새로 삽입된 레코드가 2000부터 시작되는 것을 확인할 수 있습니다.

+-------+
| Value |
+-------+
| 2000  |
| 2001  |
| 2002  |
+-------+
3 rows in set (0.00 sec)

정리

MySQL에서 테이블을 TRUNCATE한 뒤 ALTER TABLE 테이블명 auto_increment=원하는값; 구문을 실행하면, 이후 삽입되는 레코드의 자동 증가 값이 지정한 숫자부터 시작됩니다. 참고로 InnoDB 엔진에서는 설정한 값보다 작은 AUTO_INCREMENT 값을 지정할 수 없으며, 반드시 현재 최댓값보다 큰 값을 설정해야 한다는 점도 함께 기억해 두면 좋습니다.