2010-07-03 3 views
0

자동 증분으로 설정된 id 필드가있는 테이블이 있습니다. 그러나자동 증가를 다시 시작합니다.

은, 왜, 그리고 일어나는 것을 방지 할 수있는 방법이 첫 번째 새 레코드 ID 번호 (11)

될 것입니다 내가 10 개 레코드를 삽입 말을 한 다음 테이블을 비우?

답변

6

자동 증가가 모든 레코드를 삭제하고 자동 증가 필드를 재설정 삭제

TRUNCATE TABLE tbl_name

다음 자동으로 재설정되지 않았거나 당신이

ALTER TABLE tbl_name AUTO_INCREMENT=1 

Source

+0

"스마트"로 id 필드를 설정할 수있는 방법이 있습니까? 즉, 마지막 레코드가 id 11인데 삭제하면 새 레코드는 12 대신에 11의 id로 레코드되어야합니다. – Jacob

+0

@Jacop - 정말 아닙니다. 'ALTER TABLE tbl_name AUTO_INCREMENT = n'을 사용하여 마지막 행을 삭제할 때 직접 할 수도 있지만 일반적으로 순서에 간격이있을 것이라는 조건으로 오는 것이 가장 좋습니다. 응용 프로그램에 차이가 있습니까? –

+0

아무런 차이가 없었습니다. 정말 미적 감각이었습니다. 당신의 대답에 감사드립니다. – Jacob

1

을 사용할 수 있습니다 그들은 referential integrity을 유지하는 그런 식으로 행동합니다. 예를 들어 기본 및/또는 외래 키 제약 조건을 위반할 수 있으므로 ID 열의 번호를 다시 매기겠다고 결정할 수는 없습니다. 기사를 확인해보세요, 아마도 더 의미가 있습니다. 관계형 데이터베이스 세계에서 초보자를 대상으로 한 심층적 인 주제입니다.

방금 ​​시작한 경우 제약 조건에 대한 더 많은 연구를하고 일반적으로 relational database modeling을 제안 할 것입니다.

관련 문제