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

MySQL에서 AUTO_INCREMENT를 활용해 1000부터 시작하는 INT 필드(기본 키 외) 생성하는 방법

MySQL에서 기본 키(primary key)가 아닌 INT 컬럼에 AUTO_INCREMENT 속성을 부여하고, 값이 1000부터 시작하도록 설정하는 방법을 알아보겠습니다.

핵심 원리

먼저 테이블 생성 시 해당 컬럼에 AUTO_INCREMENT 속성을 지정하고, 이후 ALTER TABLE 문으로 시작 값을 1000으로 변경하면 됩니다. 참고로 MySQL에서는 AUTO_INCREMENT 컬럼에 반드시 인덱스가 정의되어 있어야 하므로, 별도의 INDEX를 추가해 주어야 합니다.

1단계: 테이블 생성

먼저 예제 테이블을 생성합니다.

mysql> create table DemoTable639 (
    StudentId int PRIMARY KEY,
    StudentStartId int AUTO_INCREMENT,
    StudentName VARCHAR(50),
    INDEX(StudentStartId)
);
Query OK, 0 rows affected (0.86 sec)

여기서 StudentId가 기본 키 역할을 하고, StudentStartId가 자동 증가 대상 컬럼입니다.

2단계: 자동 증가 시작 값을 1000으로 설정

다음 쿼리로 AUTO_INCREMENT 시작 값을 1000으로 지정합니다.

mysql> alter table DemoTable639 AUTO_INCREMENT = 1000;
Query OK, 0 rows affected (0.28 sec)
Records: 0 Duplicates: 0 Warnings: 0

3단계: 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가해 보겠습니다. 이때 StudentStartId 컬럼에는 값을 직접 넣지 않습니다.

mysql> insert into DemoTable639(StudentId,StudentName) values(1,'John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable639(StudentId,StudentName) values(2,'Chris');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable639(StudentId,StudentName) values(3,'Robert');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable639(StudentId,StudentName) values(4,'David');
Query OK, 1 row affected (0.16 sec)

4단계: 결과 확인

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

mysql> select *from DemoTable639;

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

+-----------+----------------+-------------+
| StudentId | StudentStartId | StudentName |
+-----------+----------------+-------------+
|         1 |           1000 | John        |
|         2 |           1001 | Chris       |
|         3 |           1002 | Robert      |
|         4 |           1003 | David       |
+-----------+----------------+-------------+
4 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 StudentStartId 컬럼의 값이 1000부터 시작하여 레코드가 추가될 때마다 1씩 자동으로 증가하는 것을 확인할 수 있습니다. 이처럼 ALTER TABLE 문을 활용하면 AUTO_INCREMENT의 시작 값을 원하는 숫자로 자유롭게 조정할 수 있습니다.