Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

다중 행 삽입의 경우 MySQL LAST_INSERT_ID() 함수의 출력에 어떤 영향이 있습니까?

<시간/>

MySQL LAST_INSERT_ID() 함수는 가장 최근에 생성된 시퀀스 번호를 반환하지만 다중 행 삽입의 경우 최상위에 의해 생성된 시퀀스 번호를 반환한다는 것을 알고 있습니다. 삽입된 행.

예시

mysql> Insert into Student(Name) values('Ram'),('Mohan'),('Aryan');Query OK, 영향을 받는 3개 행(0.03초) 레코드:3 중복:0 경고:0 

위 쿼리는 다중 행 삽입 쿼리를 사용하여 Student 테이블에 세 개의 값을 삽입합니다. 'Id' 열의 값은 다음 쿼리를 통해 확인할 수 있습니다. -

mysql> 학생에서 * 선택;+----+----+| 아이디 | 이름 |+----+-------+| 1 | 라만 || 2 | 라훌 || 3 | 램 || 4 | 모한 || 5 | Aryan |+----+-------+5행 세트(0.00초)

이는 Last_Insert_Id()가 출력으로 5를 반환해야 하지만 우리가 볼 수 있듯이 다음과 같이 값 3을 반환한다는 것을 의미합니다 -

mysql> Last_Insert_Id() 선택;+------------------+| Last_Insert_Id() |+------------------+| 3 |+------------------+1 행 세트(0.00초)

여러 개의 행 삽입 쿼리가 있는 맨 앞에 삽입된 행의 값이 3이므로 값 3을 반환합니다.