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

MySQL에서 AUTO_INCREMENT(자동 증분) 값을 0으로 초기화하는 쿼리 사용법

MySQL에서 자동 증분(AUTO_INCREMENT) 열의 시작 값을 0으로 설정하거나 다른 값으로 재설정하려면 ALTER TABLE 문을 사용하면 됩니다.

AUTO_INCREMENT 재설정 기본 문법

ALTER TABLE 테이블이름 AUTO_INCREMENT=0;

위와 같이 값을 0으로 설정하면, 이후 삽입되는 레코드의 자동 증분 값은 1부터 다시 시작됩니다.

예제 테이블 생성하기

먼저 예제로 사용할 테이블을 생성해 보겠습니다. 아래 예시에서는 자동 증분 시작 값을 109로 지정하여 테이블을 만듭니다.

mysql> create table DemoTable698 (
   ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY
) auto_increment=109;
Query OK, 0 rows affected (0.88 sec)

AUTO_INCREMENT 값을 0으로 재설정

이제 ALTER TABLE 문을 사용하여 자동 증분 값을 0으로 초기화합니다.

mysql> alter table DemoTable698 AUTO_INCREMENT=0;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0

레코드 삽입 후 결과 확인

INSERT 명령으로 몇 개의 레코드를 삽입해 보겠습니다. 이번 예제에서는 자동 증분 값이 처음부터 다시 매겨지는지 확인하는 것이 목적이므로, ClientId 값은 별도로 지정하지 않습니다.

mysql> insert into DemoTable698 values();
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable698 values();
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable698 values();
Query OK, 1 row affected (0.12 sec)

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable698;

실행 결과는 다음과 같습니다.

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

출력 결과를 보면, 테이블 생성 시 자동 증분 시작 값을 109로 지정했음에도 불구하고 AUTO_INCREMENT=0으로 재설정한 이후에는 ClientId가 1, 2, 3처럼 1부터 순차적으로 부여된 것을 확인할 수 있습니다.

참고 사항

AUTO_INCREMENT 값을 재설정할 때는 주의할 점이 있습니다. 만약 테이블에 이미 데이터가 존재하고, 재설정하려는 값이 현재 최대 자동 증분 값보다 작다면 MySQL은 해당 요청을 무시하고 기존 최대값 + 1부터 계속 증가시킵니다. 따라서 빈 테이블이거나 기존 데이터를 모두 삭제한 후에 재설정하는 것이 안전합니다.