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 등)이어야 한다는 점을 기억하세요.