2011-05-06 5 views
12

내가 읽은 것 LAST_INSERT_ID()은 마지막 insert 문 실행 ID를 검색합니다. 연결에서 마지막 insert 문이 실행되거나 모든 연결에 대해 데이터베이스에서 마지막 삽입이 실행되면? 내가 물어 보려고하는 것은 다음과 같습니다. 바쁜 데이터베이스에서 웹 사이트를 구동 할 때 다음 코드가 잘못된 ID를 반환 할 가능성이 있으며, 다른 방법으로 데이터베이스를 잠그는 것을 방지 할 수있는 방법이 있습니까?MySQL 및 LAST_INSERT_ID()에 의해 잘못된 ID가 반환 될 가능성

INSERT INTO example (string) VALUE ('something'); 
SELECT LAST_INSERT_ID(); 

겠습니까 PHP의 mysql_insert_id() 더 나은 솔루션, 또는 그냥 단지 삽입 된 데이터와 방법 잡아 아이디를 조회해야합니까?

답변

11

마지막 INSERT 문 ... 연결에

last_insert를 연결에서 실행하거나입니다.

겠습니까 PHP의에 mysql_insert_id() 더 나은 솔루션 아니, 그것은 동일합니다

을합니다.

그냥 방금 삽입 한 데이터를 쿼리하고 그 식으로 ID를 가져와야합니까? 링크에서 http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

인용구 : : 방법 방법 느린

링크의

커넥션별로 서버에서 유지되고 생성 된 ID입니다. 즉, 해당 클라이언트가 함수에 반환하는 값은 해당 클라이언트가 AUTO_INCREMENT 열에 영향을주는 가장 최근의 명령문에 대해 생성 된 첫 번째 AUTO_INCREMENT 값입니다. 이 값은 다른 클라이언트가 AUTO_INCREMENT 값을 생성하더라도 다른 클라이언트의 영향을받을 수 없습니다. 이 동작은 각 클라이언트가 다른 클라이언트의 활동에 관계없이 잠금 또는 트랜잭션없이 자체 ID를 검색 할 수있게합니다.

+0

신속하고 유익한 답변을 보내 주셔서 감사합니다. –

관련 문제