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

MySQL에서 INSERT 문 사용 시 AUTO_INCREMENT 열 값을 직접 삽입해야 할까?

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와 함께 지정되어 각 레코드를 고유하게 식별하는 역할을 합니다.