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

MySQL에서 기존 열을 AUTO_INCREMENT로 변경하는 방법

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)와 함께 사용됩니다.