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

MySQL에서 데이터 삽입 시 열(컬럼)을 건너뛰는 방법

MySQL에서 AUTO_INCREMENT 열 건너뛰기

MySQL에서 테이블의 첫 번째 열이 AUTO_INCREMENT로 설정되어 있다면, 해당 열의 값을 생략하고 대신 NULL을 지정할 수 있습니다. 이 경우 MySQL이 자동으로 고유한 순번 값을 생성하여 채워 넣습니다.

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

mysql> create table DemoTable
(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName varchar(100),
    StudentAge int
);
Query OK, 0 rows affected (0.60 sec)

레코드 삽입하기

이제 INSERT 명령문을 사용하여 레코드를 삽입합니다. 아래 예시에서는 첫 번째 열(StudentId)이 AUTO_INCREMENT이므로 이를 건너뛰고 NULL 값을 전달합니다.

mysql> insert into DemoTable values(NULL,'Robert',21);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(NULL,'Sam',22);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(NULL,'Bob',24);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(NULL,'Carol',20);
Query OK, 1 row affected (0.14 sec)

결과 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------+------------------+------------+
| StudentId | StudentFirstName | StudentAge |
+-----------+------------------+------------+
|         1 | Robert           |         21 |
|         2 | Sam              |         22 |
|         3 | Bob              |         24 |
|         4 | Carol            |         20 |
+-----------+------------------+------------+
4 rows in set (0.00 sec)

출력 결과에서 확인할 수 있듯이, NULL을 전달했음에도 불구하고 MySQL이 각 행에 대해 자동으로 1부터 시작하는 고유 ID 값을 생성했습니다.

참고 사항

AUTO_INCREMENT 열을 건너뛰는 또 다른 방법은 INSERT 문에 열 이름을 명시적으로 지정하는 것입니다. 예를 들어 INSERT INTO DemoTable(StudentFirstName, StudentAge) VALUES('David', 23);처럼 작성하면 ID 열을 완전히 제외할 수 있습니다. 두 방법 모두 동일한 결과를 제공하지만, 열 이름을 명시하는 방식이 코드의 가독성과 유지보수 측면에서 더 권장됩니다.