에서 ID를 생성 재기 : 테이블에내가 형식의 쿼리를 실행하려는 여러 삽입 쿼리
INSERT (필드 1을 FIELD2) SELECT 필드 1, FIELD2 테이블에서 WHERE 아이디 IN (4, 8, 15, 16, 23, 42)
여기서 id는 auto_increment'ing 기본 키 table
입니다.
이 문장을 실행 한 후에 생성 된 모든 새 ID가 무엇인지 알고 싶습니다. 이 정보를 어떻게 복구 할 수 있습니까? 나는 어쩌면 저장 프로 시저에서이 일을하고 새로 생성 된 ID의 목록을 내 응용 프로그램 코드 (PHP라고 말하면 됨)에 반환하는 것에 관심이있다. IN 절에 나타나는 것과 상관 관계가있는 순서로 목록을 원한다. SELECT 하위 쿼리의. 내 응용 프로그램 코드에서 많은 순차적 INSERT를 절약 할 수 있다고 생각합니다. 그것은 성취 할 수 있습니까?
MySQL을 다시 작성하면 포인트가 생길 수 있습니다. – Wrikken
MySql 태그가 완전히 누락되었습니다. 확실하지 않은 방법 ... SQL의 대부분의 종류에 보편적이지 않을 유일한 것은 Max()에 대한 호출 일 것이라고 생각하지만, 나는 생각할 것입니다 ... – AllenG
그럼에도 불구하고 이것은 흥미로운 대답입니다 ... 만약에 id 필드 만있는 더미 테이블을 유지하면이 유형의 쿼리를 수행하려는 사람이 먼저 더미 테이블에 삽입을 수행하여 삽입 ID를 복구 할 수 있으므로 해당 테이블이 transaction_id "티켓"이됩니다. 그런 다음 INSERT INTO ... SELECT 문에서 상수로 SELECT 할 수 있습니다. 삽입물이 "순서대로"발생하는 한, 이후에 ID로 정렬 된 트랜잭션 티켓에 SELECT를 수행하여 복구 할 수 있어야합니다. – vicatcu