2011-02-08 2 views
0

자판 번호 필드 "product_id"로 식별되는 데이터베이스에 새 레코드를 만들려면 INSERT를 사용하고 있습니다. 행을 삽입 한 직후 추가 처리를 위해 정보를 출력 할 수 있도록 새 행의 ID를 가져와야합니다. 이 ID를 얻기위한 mysql 함수가 있습니까?방금 ​​MySQL에 INSERT 된 행의 일련 번호 ID 가져 오기

+0

이것은 일반적으로 스크립팅 언어를 통해 수행됩니다 - 사용하고 있습니까? (단순히'SELECT LAST_INSERT_ID();'를 사용하지 않는 경우 ** ** 스크립팅 언어를 사용하는 경우 언어 별 방법이있는 경우 사용해야합니다. **) –

+0

중복 가능한 [마지막 Insert ID 선택] (http://stackoverflow.com/questions/2266604/select-last-insert-id) –

답변

0

은 참조 : http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

참고 : 이것은 C API를 가정 한 것입니다. 텍스트에서

:

20.8.10.3. AUTO_INCREMENT 컬럼을 포함하는 테이블에 레코드를 삽입하면 마지막으로 삽입 된 행

의 고유 ID를 얻는 방법, 당신은 에 mysql_insert_id() 함수를 호출하여 해당 컬럼에 저장된 값을 얻을 수 있습니다.

+0

이것은이 응용 프로그램에서 완벽하게 작동하지만 호기심 때문에 많은 동시 선택이있는 대형 응용 프로그램에서 사용하는 것이 안전할까요? 스트리밍? – MarathonStudios

+0

@MarathonStudios PHP와 같은 스크립팅 언어를 통해 MySQL에 액세스하고 있습니까? 그렇다면 올바른 사용법이 아닙니다. –

+1

@MarathonStudios : C 스레드를 가정하면 각 스레드가 db에 자체 연결을 가지고 있으면 안전해야합니다. 문서에서 : "mysql_insert_id() 값은 현재 클라이언트 연결 내에서 발행 된 명령문의 영향을받으며 다른 클라이언트가 내린 명령문의 영향을받지 않습니다." – HBlend

2

LAST_INSERT_ID()는 자동으로 생성 된 AUTO_INCREMENT 값을 반환합니다.