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

MySQL에서 기본 키(PRIMARY KEY)를 AUTO_INCREMENT로 변경하는 방법

MySQL에서 이미 설정된 기본 키(PRIMARY KEY) 컬럼을 AUTO_INCREMENT로 변경하려면 ALTER TABLE 문과 함께 MODIFY 명령어를 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 테스트용 테이블 생성하기

먼저 StudentId 컬럼을 기본 키로 가지는 테이블을 생성합니다.

mysql> create table changePrimaryKeyInAutoIncrement
    -> (
    -> StudentId int not null primary key,
    -> StudentName varchar(100),
    -> StudentAge int,
    -> StudentAddress varchar(100)
    -> );
Query OK, 0 rows affected (0.63 sec)

2. 테이블 구조 확인하기

DESC 명령어를 사용해 현재 테이블 구조를 확인해 보겠습니다.

mysql> desc changePrimaryKeyInAutoIncrement;

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

+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| StudentId      | int(11)      | NO   | PRI | NULL    |       |
| StudentName    | varchar(100) | YES  |     | NULL    |       |
| StudentAge     | int(11)      | YES  |     | NULL    |       |
| StudentAddress | varchar(100) | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

위 출력 결과에서 확인할 수 있듯이, StudentId 컬럼의 Key 값이 PRI로 표시되어 기본 키로 설정되어 있습니다.

3. MODIFY 명령어로 AUTO_INCREMENT 적용하기

이제 ALTER TABLE ... MODIFY 구문을 사용하여 StudentId 컬럼을 AUTO_INCREMENT로 변경합니다.

mysql> alter table changePrimaryKeyInAutoIncrement MODIFY StudentId INT AUTO_INCREMENT;
Query OK, 0 rows affected (1.48 sec)
Records: 0 Duplicates: 0 Warnings: 0

참고: MySQL에서 AUTO_INCREMENT 속성은 반드시 키(인덱스)가 설정된 컬럼에만 부여할 수 있습니다. 따라서 해당 컬럼이 기본 키 또는 유니크 키로 지정되어 있어야 정상적으로 적용됩니다.

4. 변경 결과 확인하기

변경이 완료되었으므로 다시 한번 테이블 구조를 확인해 보겠습니다.

mysql> desc changePrimaryKeyInAutoIncrement;

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

+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| StudentId      | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName    | varchar(100) | YES  |     | NULL    |                |
| StudentAge     | int(11)      | YES  |     | NULL    |                |
| StudentAddress | varchar(100) | YES  |     | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

위 출력 결과에서 Extra 항목이 auto_increment로 변경된 것을 확인할 수 있습니다. 이제 StudentId 컬럼에는 값을 직접 입력하지 않아도 레코드가 추가될 때마다 1부터 자동으로 증가하는 고유 번호가 할당됩니다.

정리

기본 키가 설정된 컬럼을 AUTO_INCREMENT로 변경하는 방법은 매우 간단합니다. 핵심은 다음 한 줄의 쿼리입니다.

ALTER TABLE 테이블명 MODIFY 컬럼명 INT AUTO_INCREMENT;

단, 대상 컬럼이 반드시 기본 키나 인덱스로 지정되어 있어야 하며, 데이터 타입은 정수형(INT, BIGINT 등)이어야 한다는 점을 기억하세요.