MySQL에서 AUTO_INCREMENT로 설정된 열에 NULL 값을 삽입하면, MySQL은 자동으로 다음 시퀀스 번호를 생성하여 해당 열에 할당합니다. 즉, 개발자가 직접 일련번호를 지정하지 않아도 MySQL이 순차적인 고유 번호를 자동으로 관리해 줍니다.
예제
먼저 AUTO_INCREMENT 속성을 가진 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE employee(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(10)); Query OK, 0 rows affected (0.16 sec)
이제 id 열에 명시적으로 NULL을 지정하여 데이터를 삽입합니다.
mysql> INSERT INTO employee(id, Name) VALUES(NULL, 'Gaurav'); Query OK, 1 row affected (0.07 sec)
삽입된 데이터를 조회하면, id 열에 NULL 대신 자동 생성된 시퀀스 번호가 저장된 것을 확인할 수 있습니다.
mysql> SELECT * FROM employee; +----+--------+ | id | Name | +----+--------+ | 1 | Gaurav | +----+--------+ 1 row in set (0.00 sec)
핵심 정리
AUTO_INCREMENT열에NULL을 삽입하면 MySQL이 자동으로 다음 일련번호를 생성합니다.- id 열을 INSERT 문에서 아예 생략하는 경우에도 동일하게 자동 번호가 부여됩니다.
- 생성되는 값은 항상 이전 최대값보다 1 큰 숫자로, 테이블 내에서 고유성이 보장됩니다.
이러한 특성 덕분에 회원번호, 주문번호처럼 순차적인 고유 식별자가 필요한 경우 AUTO_INCREMENT를 활용하면 편리하게 기본 키를 관리할 수 있습니다.