MySQL에서 LAST_INSERT_ID()를 사용하여 다중 행 INSERT 문에서 마지막 삽입 ID 반환
MySQL에서 여러 레코드 삽입을 실행할 때 다음 사항을 이해하세요. LAST_INSERT_ID() 함수의 동작이 중요해집니다. 삽입된 행의 ID를 제공하는 단일 행 삽입과 달리 LAST_INSERT_ID()는 다중 행 INSERT 문과 다르게 동작합니다.
예를 들어 다음 쿼리를 고려해 보세요.
INSERT INTO people (name, age) VALUES ('William', 25), ('Bart', 15), ('Mary', 12);
이 문을 실행한 후 LAST_INSERT_ID() 함수가 마지막으로 삽입된 행의 ID(3)를 반환할 것으로 예상할 수 있습니다. 그러나 LAST_INSERT_ID()의 동작은 이러한 예상과 다릅니다.
LAST_INSERT_ID()는 첫 번째 삽입 ID를 반환합니다
여러 레코드 INSERT 문 컨텍스트에서 LAST_INSERT_ID( )는 처음 삽입된 행에 대해서만 생성된 ID를 반환합니다. 이 동작은 MySQL 문서에 명시적으로 문서화되어 있습니다.
Important If you insert multiple rows using a single INSERT statement, LAST_INSERT_ID() returns the value generated for the first inserted row only.
이 디자인 결정은 동일한 INSERT 문을 다른 서버에서 문제 없이 쉽게 재현할 수 있도록 보장합니다. 첫 번째 삽입된 행의 ID를 사용하면 의도한 동작을 쉽게 재현할 수 있습니다.
코드 설계에 대한 의미
이 동작을 이해하는 것은 다음을 사용하는 코드를 설계하는 데 중요합니다. 다중 행 삽입을 위한 LAST_INSERT_ID() 함수. 개발자는 이러한 시나리오에서 삽입된 행의 특정 ID를 확인하기 위해 LAST_INSERT_ID()에 의존하는 것을 피해야 합니다. 다중 행 삽입에서 행 ID를 추적하거나 액세스하기 위한 대체 접근 방식을 고려해야 합니다.
위 내용은 MySQL의 다중 행 INSERT 문에서 LAST_INSERT_ID()는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!