AUTO_INCREMENT란 무엇인가?
AUTO_INCREMENT는 컬럼에 값을 자동으로 부여하도록 설정하는 MySQL의 옵션입니다. 이 옵션이 적용된 컬럼에는 데이터를 삽입할 때 별도로 값을 지정하지 않아도, 1부터 시작하여 순차적으로 자동 증가된 숫자가 입력됩니다. 주로 기본 키(Primary Key)로 사용되는 고유 식별자 컬럼에 활용됩니다.
AUTO_INCREMENT가 적용된 테이블 생성 예시
실제 동작을 확인하기 위해 'employees'라는 테이블을 아래와 같이 생성했습니다.
mysql> Show Create Table employees\G *************************** 1. row *************************** Table: employees Create Table: CREATE TABLE `employees` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(35) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
위 결과를 보면 Id 컬럼에 AUTO_INCREMENT 옵션이 적용되어 있고, 동시에 기본 키로 설정되어 있는 것을 확인할 수 있습니다.
데이터 삽입 시 자동 증가 값 확인하기
이제 Name 필드에만 값을 삽입해 보겠습니다. Id 필드에는 값을 직접 지정하지 않았지만, 자동으로 순차적인 번호가 부여되는 것을 확인할 수 있습니다.
mysql> Insert Into employees(Name) Values('Ram');
Query OK, 1 row affected (0.09 sec)
mysql> Insert Into employees(Name) Values('Shyam');
Query OK, 1 row affected (0.03 sec)
mysql> Insert Into employees(Name) Values('Mohan');
Query OK, 1 row affected (0.04 sec)
mysql> Insert Into employees(Name) Values('Sohan');
Query OK, 1 row affected (0.04 sec)
mysql> Select * from employees;
+----+-------+
| Id | Name |
+----+-------+
| 1 | Ram |
| 2 | Shyam |
| 3 | Mohan |
| 4 | Sohan |
+----+-------+
4 rows in set (0.00 sec)
정리
위 예시처럼 AUTO_INCREMENT가 적용된 컬럼은 레코드가 추가될 때마다 1, 2, 3, 4와 같이 자동으로 증가하는 값을 갖게 됩니다. 이를 통해 개발자가 일일이 고유 번호를 관리하지 않아도 되므로, 회원 번호, 게시글 번호 등 순차적인 식별자가 필요한 경우 매우 유용하게 사용할 수 있습니다.