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

MySQL에서 정수 시퀀스 생성하기 – AUTO_INCREMENT 활용법

MySQL에서 정수 시퀀스(integer sequence)를 생성하려면 AUTO_INCREMENT 속성을 사용해야 합니다. MySQL에는 오라클처럼 시퀀스를 전용으로 생성하는 별도의 명령어가 없기 때문에, AUTO_INCREMENT가 그 역할을 대신 수행합니다.

AUTO_INCREMENT의 기본 동작

AUTO_INCREMENT는 기본적으로 1부터 시작합니다. 만약 다른 숫자부터 시작하고 싶다면 ALTER 명령어를 통해 시작 값을 변경할 수 있습니다. 예를 들어 초기값을 1000으로 설정하면, 이후 생성되는 첫 번째 값은 1000 + 1 = 1001이 됩니다.

예제: 테이블 생성하기

다음은 AUTO_INCREMENT를 적용한 테이블을 생성하는 쿼리입니다.

mysql> create table AutoIncrementDemo
   −> (
      −> EmployeeId int AUTO_INCREMENT,
      −> primary key(EmployeeId)
   −> );
Query OK, 0 rows affected (0.54 sec)

EmployeeId 컬럼에 AUTO_INCREMENT를 지정했고, 기본 키(primary key)로 설정했습니다.

레코드 삽입으로 시퀀스 생성하기

값을 직접 입력하지 않고 레코드를 삽입하면 자동으로 정수 시퀀스가 생성됩니다. 쿼리는 다음과 같습니다.

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.13 sec)

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.27 sec)

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.09 sec)

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.09 sec)

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.09 sec)

mysql> insert into AutoIncrementDemo values();
Query OK, 1 row affected (0.07 sec)

생성된 시퀀스 확인하기

SELECT 문을 사용하면 자동으로 생성된 정수 시퀀스를 확인할 수 있습니다.

mysql> select *from AutoIncrementDemo;

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

+------------+
| EmployeeId |
+------------+
|          1 |
|          2 |
|          3 |
|          4 |
|          5 |
|          6 |
+------------+
6 rows in set (0.00 sec)

시작 값 변경하기

시퀀스를 1이 아닌 다른 숫자부터 시작하려면 ALTER TABLE 명령어를 사용합니다. 예를 들어 1000부터 시작하게 하려면 다음과 같이 작성합니다.

mysql> alter table AutoIncrementDemo auto_increment = 1000;

이후 새로운 레코드를 삽입하면 EmployeeId 값은 1001부터 차례대로 증가합니다.