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

MySQL에서 다음 자동 증가(AUTO_INCREMENT) ID를 확인하는 방법

MySQL의 자동 증가(AUTO_INCREMENT)란?

MySQL은 AUTO_INCREMENT 키워드를 통해 컬럼 값을 자동으로 증가시킬 수 있습니다. 기본 시작값은 1이며, 새로운 레코드가 삽입될 때마다 값이 1씩 증가합니다.

다음에 생성될 자동 증가 ID를 미리 알아야 하는 경우가 종종 있습니다. 이때는 MySQL의 last_insert_id() 함수를 사용하거나, information_schemaAUTO_INCREMENT 값을 SELECT 쿼리로 조회하면 됩니다.

1. 테스트 테이블 생성하기

먼저 'id' 컬럼을 자동 증가로 설정한 테이블을 생성해 보겠습니다.

mysql> create table NextIdDemo
-> (
-> id int auto_increment,
-> primary key(id)
-> );
Query OK, 0 rows affected (1.31 sec)

2. 레코드 삽입 및 조회

테이블에 레코드를 세 개 삽입합니다.

mysql> insert into NextIdDemo values(1);
Query OK, 1 row affected (0.22 sec)

mysql> insert into NextIdDemo values(2);
Query OK, 1 row affected (0.20 sec)

mysql> insert into NextIdDemo values(3);
Query OK, 1 row affected (0.14 sec)

저장된 전체 레코드를 조회해 보겠습니다.

mysql> select * from NextIdDemo;

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

+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
+----+
3 rows in set (0.04 sec)

위에서 레코드 3개를 삽입했으므로, 다음에 할당될 ID는 당연히 4여야 합니다.

3. 다음 자동 증가 ID 조회하기

다음 ID를 확인하는 기본 문법은 아래와 같습니다.

SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "yourDatabaseName"
AND TABLE_NAME = "yourTableName"

실제 예제 쿼리는 다음과 같습니다.

mysql> SELECT AUTO_INCREMENT
-> FROM information_schema.TABLES
-> WHERE TABLE_SCHEMA = "business"
-> AND TABLE_NAME = "NextIdDemo";

실행 결과, 다음 자동 증가값이 정상적으로 출력됩니다.

+----------------+
| AUTO_INCREMENT |
+----------------+
| 4 |
+----------------+
1 row in set (0.25 sec)

참고 사항

information_schema.TABLES를 조회하는 방식은 현재 세션과 무관하게 테이블의 메타 정보를 직접 읽어오기 때문에, 다른 사용자나 프로세스가 동시에 레코드를 삽입 중이라면 조회 시점에 따라 값이 달라질 수 있습니다. 반면 LAST_INSERT_ID() 함수는 현재 연결(세션)에서 마지막으로 삽입된 자동 증가 값을 반환하므로, 트랜잭션 내에서 안전하게 직전 ID를 확인할 때 유용합니다. 용도에 맞게 두 방식을 적절히 선택하여 사용하시기 바랍니다.