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

MySQL AUTO_INCREMENT 컬럼에 NULL, 0, DEFAULT 값을 사용해 자동 증가 처리하기

MySQL AUTO_INCREMENT에서 값 직접 지정 없이 자동 증가 활용하는 방법

MySQL에서 AUTO_INCREMENT로 설정된 컬럼에 레코드를 삽입할 때, 일일이 순번을 직접 작성하지 않아도 됩니다. NULL, 0, 또는 DEFAULT 키워드를 값으로 전달하면 MySQL이 자동으로 다음 증가값을 할당해 줍니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1350
-> (
-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName varchar(20)
-> );
Query OK, 0 rows affected (0.44 sec)

AUTO_INCREMENT가 적용된 StudentId 컬럼은 기본 키(Primary Key)로 설정되어 있으며, 학생 이름을 저장하는 StudentName 컬럼과 함께 구성되어 있습니다.

세 가지 방식으로 데이터 삽입하기

이제 insert 명령을 사용해 세 가지 서로 다른 방식(NULL, 0, DEFAULT)으로 레코드를 삽입해 보겠습니다.

mysql> insert into DemoTable1350 values(NULL,'Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1350 values(0,'Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1350 values(DEFAULT,'Chris');
Query OK, 1 row affected (0.10 sec)

삼각 방식 모두에서 ID 값을 직접 지정하지 않았음에도 정상적으로 삽입이 완료되었습니다.

결과 확인하기

select 문을 사용해 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1350;

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

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1 | Chris |
| 2 | Chris |
| 3 | Chris |
+-----------+-------------+
3 rows in set (0.00 sec)

정리

출력 결과를 보면 NULL, 0, DEFAULT 세 가지 방식 모두 동일하게 작동하여, 각 레코드에 1, 2, 3이라는 순차적인 ID가 자동으로 부여된 것을 확인할 수 있습니다.

  • NULL: 가장 널리 사용되는 방식으로, AUTO_INCREMENT 컬럼에 NULL을 전달하면 자동으로 다음 번호가 할당됩니다.
  • 0: SQL 모드 설정에 따라 0도 자동 증가 값으로 처리됩니다.
  • DEFAULT: 명시적으로 기본값(AUTO_INCREMENT 규칙)을 사용하겠다는 의미로, 코드의 가독성과 명확성 측면에서 권장됩니다.

이처럼 AUTO_INCREMENT 컬럼에는 반드시 실제 숫자를 직접 입력할 필요 없이, 위 세 가지 키워드 중 하나를 활용하면 편리하고 안전하게 자동 증가 기능을 사용할 수 있습니다.