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

MySQL INSERT 쿼리로 새 레코드 키 ID 확인하는 방법(LAST_INSERT_ID)

LAST_INSERT_ID() 함수로 새 레코드 키 ID 가져오기

MySQL에서는 LAST_INSERT_ID() 함수를 사용하여 가장 최근에 삽입된 레코드의 키(AUTO_INCREMENT) ID 값을 손쉽게 확인할 수 있습니다. 이 글에서는 테이블을 생성한 후, 레코드를 삽입하는 과정에서 LAST_INSERT_ID() 함수를 어떻게 활용하는지 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 CREATE 명령어를 사용하여 테이블을 생성합니다.

쿼리는 다음과 같습니다.

mysql> create table LastInsertRecordIdDemo
-> (
-> id int auto_increment,
-> value varchar(100),
-> primary key(id)
-> );
Query OK, 0 rows affected (0.52 sec)

2단계: 레코드 삽입 및 LAST_INSERT_ID() 설정

테이블 생성이 완료되면 레코드를 삽입하고, LAST_INSERT_ID() 함수를 사용하여 값을 설정합니다.

mysql> insert into LastInsertRecordIdDemo values(1,'Low');
Query OK, 1 row affected (0.10 sec)

mysql> insert into LastInsertRecordIdDemo values(LAST_INSERT_ID(),'High');
Query OK, 1 row affected (0.11 sec)

3단계: SELECT 문으로 결과 확인

이제 SELECT 문을 사용하여 저장된 모든 레코드를 조회할 수 있습니다.

쿼리는 다음과 같습니다.

mysql> select *from LastInsertRecordIdDemo;

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

+----+-------+
| id | value |
+----+-------+
| 1 | Low |
| 2 | High |
+----+-------+
2 rows in set (0.00 sec)

4단계: LAST_INSERT_ID() + 1로 새 레코드 삽입

새로운 레코드를 추가하려면 LAST_INSERT_ID() 함수에 1을 더한 값을 사용하면 됩니다. 쿼리는 다음과 같습니다.

mysql> insert into LastInsertRecordIdDemo values(LAST_INSERT_ID()+1,'Medium');
Query OK, 1 row affected (0.08 sec)

다시 SELECT 문으로 전체 레코드를 조회해 보겠습니다.

mysql> select *From LastInsertRecordIdDemo;

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

+----+--------+
| id | value |
+----+--------+
| 1 | Low |
| 2 | High |
| 3 | Medium |
+----+--------+
3 rows in set (0.00 sec)

정리

이처럼 MySQL의 LAST_INSERT_ID() 함수를 활용하면 별도의 조회 작업 없이도 방금 삽입된 레코드의 AUTO_INCREMENT 키 값을 즉시 얻을 수 있으며, 이 값에 연산을 적용해 다음 레코드의 ID를 지정하는 것도 가능합니다. 참고로 실무에서는 PHP의 mysqli_insert_id(), 자바의 getGeneratedKeys() 등 각 언어의 드라이버가 제공하는 API를 통해 동일한 정보를 더 안전하게 가져오는 방식도 널리 사용됩니다.