주문 DB를 생성하는 과정에서 주문 시스템에서 새로운 데이터를 생성한 직후 그 데이터를 참조해야 할 때가 있었다. 방금 삽입된 데이터를 가져오는 작업이 필요할 때 MySQL에서 주로 사용되는 두 가지 방법이 있다. 각각의 방법에 대해 알아보자.
LAST_INSERT_ID() 함수는 가장 최근에 AUTO_INCREMENT 컬럼에 삽입된 값을 반환한다. 이 함수의 가장 큰 장점은 멀티 유저 환경에서도 안정적으로 마지막으로 삽입된 행의 ID를 가져올 수 있다는 것이다. 즉, 여러 사용자가 동시에 데이터를 삽입하더라도 각 사용자는 자신이 삽입한 데이터의 ID를 정확히 가져올 수 있다.
INSERT INTO orders (title, quantity) VALUES ('어린왕자', 1);
SELECT LAST_INSERT_ID();
MAX() 함수를 사용하여 특정 컬럼의 최대값을 찾는 방법도 있다. 이 방식은 특히 AUTO_INCREMENT 속성이 없는 컬럼에서 마지막으로 삽입된 값을 찾고자 할 때 유용하다.
SELECT MAX(order_id) FROM orders;
작업의 특성과 환경에 따라 적절한 방법을 선택하는 것이 중요하다. 일반적으로 LAST_INSERT_ID() 함수의 사용이 더 안정적이고 추천되는 방법이라고 한다!