>  기사  >  데이터 베이스  >  MySQL에서 `LAST_INSERT_ID()`는 다중 레코드 `INSERT` 문과 어떻게 작동합니까?

MySQL에서 `LAST_INSERT_ID()`는 다중 레코드 `INSERT` 문과 어떻게 작동합니까?

DDD
DDD원래의
2024-11-17 10:45:04252검색

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.