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

MySQL에서 AUTO_INCREMENT 초기화하는 방법 (TRUNCATE TABLE 활용)

```html

MySQL에서 테이블의 AUTO_INCREMENT 값을 처음부터 다시 시작하도록 초기화하려면 TRUNCATE TABLE 명령어를 사용하면 됩니다. TRUNCATE는 테이블의 모든 데이터를 삭제할 뿐만 아니라 자동 증가 카운터도 1로 되돌려 줍니다.

TRUNCATE TABLE yourTableName;

단순히 DELETE 문으로 데이터를 삭제하는 것과 달리, TRUNCATE는 AUTO_INCREMENT 값까지 함께 초기화한다는 점이 핵심입니다.

1. 테스트용 테이블 생성

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.52 sec)

Id 컬럼은 AUTO_INCREMENT 속성을 가지며 기본 키로 설정되어 있어, 데이터가 삽입될 때마다 1씩 자동으로 증가합니다.

2. 데이터 삽입 및 확인

INSERT 명령어로 여러 개의 레코드를 삽입해 보겠습니다.

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

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.14 sec)

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

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

mysql> select *from DemoTable;

출력 결과

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

현재 Id 값이 1부터 4까지 순차적으로 증가한 것을 확인할 수 있습니다.

3. TRUNCATE로 AUTO_INCREMENT 초기화

이제 다음 쿼리를 실행하여 AUTO_INCREMENT를 초기화합니다.

mysql> truncate table DemoTable;
Query OK, 0 rows affected (0.80 sec)

테이블이 비워졌으므로, 다시 레코드를 삽입하면 AUTO_INCREMENT는 기본값인 1부터 다시 시작됩니다.

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

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

다시 한번 전체 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

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

정리

  • TRUNCATE TABLE은 테이블의 모든 데이터를 삭제하고 AUTO_INCREMENT 값을 1로 초기화합니다.
  • DELETE FROM은 데이터만 삭제하므로 AUTO_INCREMENT 값은 그대로 유지됩니다.
  • TRUNCATE는 WHERE 조건을 사용할 수 없으며, 테이블 전체에만 적용됩니다.

테스트 환경에서 데이터를 정리하거나 ID를 새로 시작해야 하는 경우 TRUNCATE TABLE이 가장 간편한 방법입니다.