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

MySQL에서 테이블의 기본 키(Primary Key)를 재설정하는 방법

테이블의 기본 키를 재설정한다는 것은 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를 재설정하거나, 테스트 환경에서 초기화 목적으로 사용하는 것이 안전합니다.