보통 MySQL 테이블에 행을 삽입하고 last_insert_id
를 얻을 수 있습니다. 하지만 이제는 테이블에 많은 행을 대량으로 삽입하고 ID 배열을 가져오고 싶습니다. 내가 어떻게 할 수 있는지 아는 사람 있나요?
비슷한 질문이 있지만 완전히 똑같지는 않습니다. 임시 테이블에 새 ID를 삽입하고 싶지는 않습니다. 단지 ID 배열을 다시 가져오고 싶습니다.
대량 삽입에서 lastInsertId를 검색할 수 있나요?
last_insert_id()를 사용하는 Mysql 다중 행 삽입 선택 문
제 생각에 가능한 유일한 방법은 삽입된 각 행 집합에 대해 고유 식별자(guid)를 저장하는 것입니다. 그런 다음 행 ID를 선택합니다. 예:
으아악또한
uuid()
를 사용하여 데이터베이스에 guid를 생성할 수도 있습니다오래된 스레드이지만 방금 살펴본 내용은 다음과 같습니다. 최신 버전의 MySQL에서 InnoDB를 사용하는 경우
LAST_INSERT_ID()
和ROW_COUNT()
를 사용하여 ID 목록을 얻을 수 있습니다.InnoDB는
innodb_autoinc_lock_mode
가 0(레거시) 또는 1(연속)로 설정된 경우 대량 삽입을 수행할 때 자동 증가하는 시퀀스 번호를 보장합니다. 그러면LAST_INSERT_ID()
获取第一个 ID,并通过添加ROW_COUNT()-1
마지막 ID를 에서 얻을 수 있습니다.