MySQL 열에 AUTO_INCREMENT 속성 추가하기
이미 생성된 테이블의 특정 열에 AUTO_INCREMENT 속성을 추가해야 하는 경우가 종종 있습니다. 이럴 때는 ALTER TABLE 문과 함께 MODIFY 명령어를 사용하면 됩니다.
이번 글에서는 데모 테이블을 직접 만들고, 기존 열을 AUTO_INCREMENT로 변경한 뒤, 실제로 값이 자동으로 증가하는지까지 단계별로 확인해 보겠습니다.
1단계: 테스트용 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> CREATE TABLE AddingAutoIncrement
-> (
-> Id int,
-> Name varchar(200),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.47 sec)'Id'와 'Name' 두 개의 열을 가진 테이블이 생성되었습니다. 'Id' 열은 이미 기본 키(Primary Key)로 설정되어 있으므로 AUTO_INCREMENT를 적용하기에 적합합니다.
2단계: MODIFY 명령어로 AUTO_INCREMENT 적용
기존 열에 AUTO_INCREMENT를 추가하는 기본 문법은 다음과 같습니다.
ALTER TABLE yourTableName MODIFY yourColumnName int AUTO_INCREMENT;
이 문법을 실제 테이블에 적용해 보겠습니다.
mysql> ALTER TABLE AddingAutoIncrement MODIFY Id int AUTO_INCREMENT; Query OK, 0 rows affected (1.19 sec) Records: 0 Duplicates: 0 Warnings: 0
쿼리가 정상적으로 실행되어 'Id' 열에 AUTO_INCREMENT 속성이 추가되었습니다.
3단계: DESC 명령어로 구조 확인
DESC 명령어를 사용하면 테이블 구조와 속성이 제대로 적용되었는지 확인할 수 있습니다.
mysql> DESC AddingAutoIncrement;
실행 결과는 다음과 같습니다.
+-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(200) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
출력 결과의 Extra 열을 주목해 보세요. 'auto_increment'라는 키워드가 표시되어 있는데, 이는 AUTO_INCREMENT 속성이 성공적으로 적용되었다는 것을 의미합니다.
4단계: 데이터 삽입 후 자동 증가 확인
이제 실제로 레코드를 삽입하면서 Id 값이 자동으로 1씩 증가하는지 확인해 보겠습니다. AUTO_INCREMENT가 설정된 열은 INSERT 시 값을 생략할 수 있습니다.
mysql> INSERT INTO AddingAutoIncrement(Name) VALUES('John');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO AddingAutoIncrement(Name) VALUES('Smith');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO AddingAutoIncrement(Name) VALUES('Bob');
Query OK, 1 row affected (0.10 sec)SELECT 문으로 전체 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM AddingAutoIncrement;
실행 결과는 다음과 같습니다.
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | Smith | | 3 | Bob | +----+-------+ 3 rows in set (0.00 sec)
위 출력 결과에서 볼 수 있듯이, Id 값을 직접 지정하지 않았음에도 각 레코드가 자동으로 1씩 증가하며 저장된 것을 확인할 수 있습니다.
정리
기존 MySQL 테이블의 열에 AUTO_INCREMENT를 추가하는 방법은 매우 간단합니다. 핵심은 ALTER TABLE ... MODIFY 구문을 사용하는 것이며, AUTO_INCREMENT를 적용하려는 열은 반드시 키(Key)로 설정되어 있어야 한다는 점을 기억하세요. 일반적으로 기본 키(PRIMARY KEY)와 함께 사용됩니다.