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

MySQL에서 원하는 시작 값으로 AUTO_INCREMENT 열 추가하는 방법

이미 생성된 테이블에 새로운 열을 추가할 때는 ALTER TABLE 문과 ADD COLUMN 절을 함께 사용합니다. 여기에 AUTO_INCREMENT 속성을 적용하고 시작 값을 직접 지정하면, 기존 데이터에도 원하는 번호부터 순차적으로 자동 증가 값이 부여됩니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
-> (
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.63 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.12 sec)

3. 현재 테이블 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

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

+-------------+
| StudentName |
+-------------+
| Robert |
| Adam |
| Mike |
+-------------+
3 rows in set (0.00 sec)

4. 시작 값이 있는 자동 증가 열 추가하기

아래 쿼리는 기존 테이블에 자동 증가 열을 추가하면서 시작 값을 1000으로 설정하는 예시입니다.

mysql> alter table DemoTable add column StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,AUTO_INCREMENT=1000;
Query OK, 0 rows affected (1.83 sec)
Records: 0 Duplicates: 0 Warnings: 0

여기서 핵심은 두 가지입니다.

  • NOT NULL AUTO_INCREMENT PRIMARY KEY: 자동 증가 열은 반드시 NOT NULL이어야 하며, 일반적으로 기본 키(PRIMARY KEY)로 설정합니다.
  • AUTO_INCREMENT=1000: ALTER TABLE 문 마지막에 이 옵션을 붙이면 자동 증가 값이 1000부터 시작됩니다.

5. 결과 확인하기

테이블을 다시 조회해 보겠습니다.

mysql> select *from DemoTable;

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

+-------------+-----------+
| StudentName | StudentId |
+-------------+-----------+
| Robert | 1000 |
| Adam | 1001 |
| Mike | 1002 |
+-------------+-----------+
3 rows in set (0.00 sec)

출력 결과를 보면, 기존에 존재하던 Robert, Adam, Mike 레코드에도 각각 1000, 1001, 1002라는 ID가 순서대로 자동으로 할당된 것을 확인할 수 있습니다. 이후 새로 삽입되는 레코드에는 1003부터 계속 증가된 값이 부여됩니다.