> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 다중 행 INSERT 문에서 LAST_INSERT_ID()는 어떻게 작동합니까?

MySQL의 다중 행 INSERT 문에서 LAST_INSERT_ID()는 어떻게 작동합니까?

Linda Hamilton
풀어 주다: 2024-11-14 20:14:02
원래의
802명이 탐색했습니다.

How Does LAST_INSERT_ID() Behave in Multi-Row INSERT Statements in MySQL?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿