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

MySQL에서 ALTER TABLE 명령으로 AUTO_INCREMENT 추가하는 방법

MySQL에서 기존 컬럼에 AUTO_INCREMENT 추가하기

MySQL에서 이미 생성된 테이블의 특정 컬럼에 AUTO_INCREMENT 속성을 추가하려면 ALTER TABLE 명령을 사용하면 됩니다.

기본 문법

ALTER TABLE yourTableName CHANGE yourColumnName yourColumnName dataType AUTO_INCREMENT PRIMARY KEY;

위 문법에서 주목할 점은 CHANGE 절 뒤에 컬럼 이름을 두 번 작성한다는 것입니다. 첫 번째는 기존 컬럼 이름, 두 번째는 변경할 새 컬럼 이름입니다. 이름을 그대로 유지하고 싶다면 동일한 이름을 두 번 입력하면 됩니다.

예제 테이블 생성

개념을 이해하기 위해 컬럼이 하나뿐인 간단한 테이블을 먼저 만들어 보겠습니다.

mysql> create table AlterTableToAddAutoIncrement
   -> (
   -> StudentId int
   -> );
Query OK, 0 rows affected (0.57 sec)

'StudentId'라는 int 타입의 컬럼 하나만 가진 테이블이 생성되었습니다.

AUTO_INCREMENT 속성 적용

이제 위에서 소개한 문법을 사용해 'StudentId' 컬럼에 AUTO_INCREMENT와 기본 키(PRIMARY KEY)를 함께 설정해 보겠습니다.

mysql> alter table AlterTableToAddAutoIncrement change StudentId StudentId int AUTO_INCREMENT Primary key;
Query OK, 0 rows affected (1.93 sec)
Records: 0 Duplicates: 0 Warnings: 0

쿼리가 성공적으로 실행되어 'StudentId' 컬럼에 AUTO_INCREMENT 속성이 추가되었습니다.

참고: MySQL에서 AUTO_INCREMENT를 설정하려면 해당 컬럼이 반드시 키(Primary Key 또는 Unique Key)여야 합니다. 따라서 위 예제처럼 PRIMARY KEY를 함께 지정하는 것이 일반적입니다.

AUTO_INCREMENT 동작 확인

속성이 제대로 적용되었는지 확인하려면 값을 지정하지 않고 레코드를 삽입해 보면 됩니다. AUTO_INCREMENT가 정상 작동한다면 값이 자동으로 순차적으로 증가합니다.

mysql> insert into AlterTableToAddAutoIncrement values();
Query OK, 1 row affected (0.16 sec)
mysql> insert into AlterTableToAddAutoIncrement values();
Query OK, 1 row affected (0.16 sec)
mysql> insert into AlterTableToAddAutoIncrement values();
Query OK, 1 row affected (0.33 sec)

세 개의 레코드를 아무 값 없이 삽입했습니다. 이제 전체 데이터를 조회해 결과를 확인해 보겠습니다.

mysql> select * from AlterTableToAddAutoIncrement;

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

+-----------+
| StudentId |
+-----------+
|         1 |
|         2 |
|         3 |
+-----------+
3 rows in set (0.00 sec)

값을 직접 입력하지 않았음에도 StudentId가 1, 2, 3으로 자동 증가한 것을 확인할 수 있습니다. 이것으로 ALTER TABLE 명령을 통해 기존 컬럼에 AUTO_INCREMENT가 성공적으로 추가된 것입니다.