2014-04-24 3 views
-2

는 PRIMARY KEY id와 테이블 T, 나는 AUTO INCREMENT로 설정 말해봐. 그것이 유일한 PRIMARY KEY 및 AUTO INCREMENT 이후새로 삽입 된 자동 증가 값은 어떻게 얻을 수 있습니까?

나는 내가 그것을 할 수없는 방법을 수행하지만, 다른 작업에 새로 삽입 된 ID 값을 얻을 필요가있다.

또 다른 이론에서 유효 WHERE 다른 ​​모든 값을 선택할 수 있지만 너무 느리다.

더 좋은 아이디어가 있습니까? 이

+1

API 클라이언트는 마지막으로 삽입 한 ID를 반환 할 수 있어야합니다. – Kermit

답변

2

당신은 ... 당신은에서 삽입 문 다음에 ID를 얻어야한다 이것은 그런데 기능

SELECT id FROM t ORDER BY id DESC LIMIT 1 

없이 마지막 ID를 생성합니다

select LAST_INSERT_ID(); 
+0

감사합니다. 현재이 기능을 사용하고 있습니다. – fish748

0

를 작동하지 않습니다?

select max(id) from T; 
+1

멀티 스레드 상황에서는 그렇지 않습니다. – fish748

+0

그런 다음 원본 질문을 편집하여 처리중인 입력 샘플과 보려는 출력을 표시하십시오. – dg99

0

그것은 분명 어떤 데이터베이스 엔진에 따라 달라집니다 우리 이자형. 만약 우리가 MSSQL에 대해 말하고 있다면, 좋은 방법은 현재 트랜잭션 (또는 세션)에서 생성 된 마지막 ID를 반환하는 것입니다. 자세한 내용은 post을 참조하십시오.

어쨌든 최대 ID를 계산할 수 있지만 누군가가 잠시 동안 새 행을 삽입하는 경우 보증을받을 수 있습니다.

관련 문제