AUTO_INCREMENT 열에는 값을 직접 삽입할 필요가 없습니다
결론부터 말하면 아니요, AUTO_INCREMENT로 설정된 열에는 INSERT 문으로 값을 직접 삽입할 필요가 없습니다. 해당 열은 1부터 시작하여 새 레코드가 추가될 때마다 자동으로 값이 증가하기 때문입니다. 이는 테이블 생성 시 해당 열을 AUTO_INCREMENT로 지정했기 때문에 가능한 동작입니다.
실제 예제를 통해 동작 방식을 단계별로 확인해 보겠습니다.
1단계: 테이블 생성
먼저 EmployeeId 열을 AUTO_INCREMENT로 설정한 테이블을 생성합니다.
mysql> create table DemoTable
(
EmployeeId int NOT NULL AUTO_INCREMENT,
EmployeeName varchar(30),
EmployeeSalary int,
PRIMARY KEY(EmployeeId)
);
Query OK, 0 rows affected (0.49 sec)2단계: 데이터 삽입
INSERT 문 작성 시 EmployeeId 열은 제외하고, 이름과 급여 값만 지정하여 레코드를 삽입합니다.
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Chris',56789);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('David',78909);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Mike',100056);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable(EmployeeName,EmployeeSalary) values('Bob',150000);
Query OK, 1 row affected (0.19 sec)3단계: 결과 확인
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다. EmployeeId 값이 별도로 입력하지 않았음에도 1부터 순차적으로 자동 추가된 것을 확인할 수 있습니다.
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 1 | Chris | 56789 | | 2 | David | 78909 | | 3 | Mike | 100056 | | 4 | Bob | 150000 | +------------+--------------+----------------+ 4 rows in set (0.00 sec)
추가로 알아두면 좋은 점
- 마지막 삽입 ID 확인: 방금 삽입된 레코드의 자동 증가 값이 필요하다면
SELECT LAST_INSERT_ID();를 통해 즉시 확인할 수 있습니다. - 명시적 삽입도 가능하지만 권장하지 않음: AUTO_INCREMENT 열에 임의의 값을 직접 삽입하는 것도 기술적으로는 가능하지만, 중복 오류나 번호 불연속 문제를 일으킬 수 있으므로 특별한 경우가 아니라면 자동 증가에 맡기는 것이 좋습니다.
- 기본키와 함께 사용: AUTO_INCREMENT 열은 일반적으로 PRIMARY KEY와 함께 지정되어 각 레코드를 고유하게 식별하는 역할을 합니다.