AUTO_INCREMENT 초기값과 ZEROFILL을 함께 적용한 테이블 만들기
예제를 통해 직접 확인해 보겠습니다. StudentId 컬럼의 AUTO_INCREMENT 시작값을 100으로 지정하고, 동시에 ZEROFILL 옵션까지 적용한 테이블을 생성합니다.
mysql> create table DemoTable
(
StudentId int(7) ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY(StudentId)
)AUTO_INCREMENT=100;
Query OK, 0 rows affected (0.48 sec)이제 INSERT 명령으로 레코드를 추가해 보겠습니다. StudentId 값을 명시적으로 입력하지 않으면, AUTO_INCREMENT 설정에 따라 첫 번째 값은 100부터 자동으로 시작됩니다. 또한 테이블 생성 시 ZEROFILL 옵션을 지정했기 때문에, 남는 왼쪽 자릿수는 모두 0으로 채워집니다.
mysql> insert into DemoTable values(); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(); Query OK, 1 row affected (0.09 sec)
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-----------+ | StudentId | +-----------+ | 0000100 | | 0000101 | | 0000102 | | 0000103 | +-----------+ 4 rows in set (0.00 sec)
동작 원리 정리
- AUTO_INCREMENT=100: 자동 증가 값이 100부터 시작됩니다.
- ZEROFILL + int(7): 숫자의 앞자리를 0으로 채워 항상 7자리로 표시합니다.
- INSERT 시 값 생략: 컬럼 값을 지정하지 않아도 자동으로 다음 증가 번호가 할당됩니다.
이처럼 AUTO_INCREMENT와 ZEROFILL을 함께 사용하면, 일련번호 관리가 편리해질 뿐만 아니라 고정된 자릿수 형태로 데이터를 일관성 있게 유지할 수 있습니다.