2011-03-18 6 views
2

내 기본 키 열 중 하나가 내 표에 자동 증가합니다. 그러나 가장 높은 기본 키 ID를 가진 테이블에서 행을 삭제할 때 (11을 말하게 할 때). 그런 다음 다음에 삽입 할 때 키를 11이 아닌 12로 삽입합니다 (논리적으로는 11을 사용할 수 있지만 키 11과 관련된 항목이 없으므로). 어떻게해야합니까?MySQL에서 자동 증가

답변

6

정말로 이것을 원하십니까? 자동 증가 열 (autoincrement column)은 고유 번호를 보장합니다. 내가 추측하는 다음 autoincrement 값을 업데이트 할 수는 있습니다 (어떻게 작동하는지 살펴 봐야 할 것입니다). 그러나 나는 당신이 그것을 원해야한다고 생각하지 않습니다.

열의 숫자를 제어해야하는 경우 수동으로해야합니다.

그럼에도 불구하고, 당신이 그렇게처럼 자동 증가 번호를 변경할 수 있습니다

ALTER TABLE tbl AUTO_INCREMENT = 100; 

(에서 : http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)

또 다른 말 : 당신이 10-1 번호를 가지고, 당신은 5를 제거하면, 당신은 쉽게 할 수 없습니다 이 작업을 수행. 6이 이미 있기 때문에 다음 auto_increment 5를 거의 만들 수 없습니다. 예를 들어, 일을 더럽히는 반면 실제 환경에서는이 작업을 수행하기가 정말 어렵습니다. 어쩌면 상황에 대한 설명과 함께 새로운 질문을 시작하고 auto_increment 트릭을 사용하지 않고 문제에 접근하는 방법에 대한 조언을 구할 수 있습니다. :)

+2

예. 삭제 된 ID는 다시 사용하면 안됩니다. –

+0

좋습니다. 그렇다면 모범 사례입니다. – aherlambang

0

MySQL에는 상자가없는 기능이 없으므로 코드를 작성해야합니다. 너의 어플리케이션. 한 가지 문제는 두 개의 트랜잭션이 얻고 싶다면 id 중 하나가 중복 된 id 오류를 얻는다는 것입니다. 그만큼 피하는 것이 좋습니다.

모든 DB 엔진에는 동시성에 좋지 않으므로이 "기능"이 없습니다.