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

MySQL 자동 증가(AUTO_INCREMENT) 기본 키가 있을 때 데이터 삽입하는 방법

테이블의 컬럼에 자동 증가(auto_increment) 기본 키가 설정되어 있다면 큰 장점이 있습니다. 바로 INSERT 명령 실행 시 해당 컬럼에 값을 직접 지정하지 않아도 된다는 점입니다. MySQL이 자동으로 그 값을 생성해 주기 때문입니다.

이 개념을 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다. 아래 쿼리로 테이블을 생성할 수 있습니다.

mysql> create table AutoIncrementedPrimary
-> (
-> Id int auto_increment,
-> Name varchar(100),
-> Age int,
-> Primary key(Id)
-> );
Query OK, 0 rows affected (0.56 sec)

위 테이블에서 Id 컬럼은 auto_increment 속성과 기본 키(Primary Key)로 설정되어 있습니다. 따라서 레코드를 삽입할 때는 NameAge 값만 지정하면 되고, Id 값은 MySQL이 순차적으로 자동 할당합니다.

데이터 삽입하기

Name과 Age 컬럼에만 값을 넣어 레코드를 삽입하는 쿼리는 다음과 같습니다.

mysql> insert into AutoIncrementedPrimary(Name,Age) values('John',23);
Query OK, 1 row affected (0.12 sec)

mysql> insert into AutoIncrementedPrimary(Name,Age) values('Sam',24);
Query OK, 1 row affected (0.15 sec)

mysql> insert into AutoIncrementedPrimary(Name,Age) values('Carol',30);
Query OK, 1 row affected (0.13 sec)

mysql> insert into AutoIncrementedPrimary(Name,Age) values('Johnson',28);
Query OK, 1 row affected (0.16 sec)

결과 확인하기

이제 SELECT 명령으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from AutoIncrementedPrimary;

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

+----+---------+------+
| Id | Name | Age |
+----+---------+------+
| 1 | John | 23 |
| 2 | Sam | 24 |
| 3 | Carol | 30 |
| 4 | Johnson | 28 |
+----+---------+------+
4 rows in set (0.00 sec)

출력 결과를 보면 INSERT 문에서 Id 값을 전혀 지정하지 않았음에도 불구하고, MySQL이 각 레코드에 1부터 시작하는 고유한 번호를 순차적으로 자동 부여한 것을 확인할 수 있습니다.

참고 사항

AUTO_INCREMENT 컬럼은 반드시 기본 키 또는 인덱스로 설정되어야 하며, 하나의 테이블에는 하나의 AUTO_INCREMENT 컬럼만 존재할 수 있습니다. 이 기능은 회원 번호, 게시글 번호처럼 중복되지 않는 고유 식별자가 필요할 때 매우 유용하게 활용됩니다.