MySQL에서 다중 레코드 INSERT 문에 대한 LAST_INSERT_ID() 동작
MySQL의 LAST_INSERT_ID() 함수는 마지막으로 삽입된 행에 대해 생성된 ID를 검색합니다. 이 동작은 다중 레코드 INSERT 문과 비교하여 단일 레코드 INSERT 문을 사용할 때 다를 수 있습니다.
단일 레코드 INSERT 문
단일 레코드 INSERT 사용 문에서 LAST_INSERT_ID()는 삽입된 마지막 레코드에 해당하는 생성된 ID를 예상대로 반환합니다.
다중 레코드 INSERT 문
그러나 다중 레코드를 사용하는 경우 INSERT 문에서 LAST_INSERT_ID()는 처음 삽입된 행에 해당하는 ID를 반환합니다. 이 동작은 MySQL 문서에 명시적으로 문서화되어 있으며 다른 서버에서 동일한 INSERT 문을 쉽게 재현할 수 있다는 점을 강조합니다.
예
다음 다중 레코드 INSERT를 고려하세요. 문:
INSERT INTO people (name,age) VALUES ('William',25), ('Bart',15), ('Mary',12);
이 문이 실행된 후 LAST_INSERT_ID()는 삽입된 첫 번째 레코드('William')에 대해 생성된 ID를 나타내는 3이 아닌 1을 반환합니다.
추론
이 동작은 서버 전체에서 데이터 일관성을 보장합니다. LAST_INSERT_ID()가 다중 레코드 문에서 마지막으로 삽입된 행의 ID를 반환한 경우 동일한 행에 다른 ID를 할당하는 다른 서버에서 INSERT 문을 재현할 수 없습니다.
위 내용은 MySQL에서 `LAST_INSERT_ID()`는 다중 레코드 `INSERT` 문과 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!