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

MySQL LAST_INSERT_ID() 함수의 용도와 사용법 완벽 정리

MySQL의 LAST_INSERT_ID() 함수는 AUTO_INCREMENT 속성이 적용된 컬럼에서 가장 최근에 자동으로 생성된 시퀀스 번호를 조회하는 함수입니다. 새로운 레코드를 삽입한 직후 자동 생성된 ID 값이 필요할 때 매우 유용하게 사용됩니다.

LAST_INSERT_ID() 함수의 주요 특징

  • 현재 연결(connection)에서 가장 최근에 INSERT된 행의 AUTO_INCREMENT 값을 반환합니다.
  • 연결 단위로 관리되기 때문에 다른 클라이언트의 INSERT 작업 결과에 영향을 받지 않습니다.
  • 특정 테이블이 아니라 서버 연결 전체를 기준으로 마지막 삽입 ID를 기억합니다.

예제

다음 예제에서는 AUTO_INCREMENT 컬럼을 포함하는 'Student' 테이블을 생성합니다. 'Name' 컬럼에 두 개의 값을 차례로 삽입한 후 LAST_INSERT_ID() 함수를 호출하면, 가장 최근에 생성된 시퀀스 번호인 2가 반환되는 것을 확인할 수 있습니다.

mysql> Create table Student(Id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Name Varchar(5));
Query OK, 0 rows affected (0.13 sec)

mysql> Insert into student(Name) Values('Raman');
Query OK, 1 row affected (0.06 sec)

mysql> Insert into student(Name) Values('Rahul');
Query OK, 1 row affected (0.07 sec)

mysql> Select* from student;
+----+-------+
| Id | Name |
+----+-------+
| 1 | Raman |
| 2 | Rahul |
+---+-------+
2 rows in set (0.00 sec)

mysql> Select Last_insert_id();
+------------------+
| Last_insert_id() |
+------------------+
|                2 |
+------------------+
1 row in set (0.00 sec)

실무 활용 팁

LAST_INSERT_ID() 함수는 부모 테이블에 데이터를 삽입한 직후, 생성된 ID를 자식 테이블의 외래 키(Foreign Key) 값으로 사용해야 하는 경우에 특히 유용합니다. 예를 들어 회원 정보를 저장한 후 해당 회원의 ID를 주문 테이블에 함께 저장해야 할 때, 별도의 SELECT 쿼리 없이 이 함수 하나로 방금 생성된 ID를 즉시 가져올 수 있습니다.

또한 PHP, Java, Python 등 다양한 프로그래밍 언어의 MySQL 드라이버에서도 동일한 원리로 마지막 삽입 ID를 제공하므로, 애플리케이션 개발 시 데이터 일관성을 유지하는 데 널리 활용됩니다.