네, 가능합니다. AUTO_INCREMENT로 설정된 컬럼은 INSERT 문에서 해당 컬럼을 생략하면 MySQL이 자동으로 순차적인 값을 채워주기 때문입니다. 즉, 일일이 ID 값을 지정하지 않아도 레코드를 손쉽게 추가할 수 있습니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable1479
-> (
-> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeSalary int
-> );
Query OK, 0 rows affected (0.86 sec)
위 테이블에서 EmployeeId 컬럼은 AUTO_INCREMENT이자 기본 키(PRIMARY KEY)로 설정되어 있습니다. 이제 INSERT 명령을 사용해 여러 개의 레코드를 삽입해 보겠습니다. 이때 EmployeeId 컬럼은 완전히 생략하고, 급여(EmployeeSalary) 값만 지정합니다.
mysql> insert into DemoTable1479(EmployeeSalary) values(6800);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1479(EmployeeSalary) values(5600);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1479(EmployeeSalary) values(5700);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1479(EmployeeSalary) values(6900);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1479(EmployeeSalary) values(15000);
Query OK, 1 row affected (0.11 sec)
SELECT 문을 사용해 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1479;
실행 결과는 다음과 같습니다.
+------------+----------------+
| EmployeeId | EmployeeSalary |
+------------+----------------+
| 1 | 6800 |
| 2 | 5600 |
| 3 | 5700 |
| 4 | 6900 |
| 5 | 15000 |
+------------+----------------+
5 rows in set (0.00 sec)
추가 팁
위 결과에서 확인할 수 있듯이, EmployeeId 컬럼에 아무 값도 지정하지 않았음에도 1부터 5까지 자동으로 번호가 매겨진 것을 볼 수 있습니다.
참고로 AUTO_INCREMENT 컬럼을 포함시키면서 값을 자동으로 할당하고 싶다면, 컬럼을 명시한 뒤 NULL 또는 DEFAULT 키워드를 값으로 전달하는 방법도 있습니다. 예를 들어 다음과 같이 작성할 수 있습니다.
mysql> insert into DemoTable1479(EmployeeId, EmployeeSalary) values(NULL, 7200);
두 방식 모두 동일하게 자동 증가 값이 적용되므로, 상황에 맞게 편리한 방법을 선택하면 됩니다.