2011-11-28 6 views
0
내가 특정 테이블의 모든 새 항목에 대해 1 씩 내 정수 기본 키를 늘릴 수

. 나는 AUTOINCREMENT를 사용하여 그렇게 할 수 있다고 읽었습니다. "일정하게 증가"는 ROWID는 항상 정확히 하나가 증가하는 것을 의미하지는 않습니다안드로이드 SQLite는 딜레마

참고 : 다른 한편으로 나는 아래의 메모를 발견했다. 하나는 일반적인 증분입니다. 삽입이로 인해 실패 할 경우, 고유성 제약 조건 (예를 들어), 실패한 삽입 시도의 ROWID는 ROWID 순서에서 차이의 결과로, 이후의 삽입에 재사용되지 않을 수 있습니다. 자동의 ROWID를 선택 AUTOINCREMENT 보장은 증가 될 것이다 그러나 그들은 순차적 될 것입니다하지 않는 것이.

그래서 제 질문은 내가 테이블 내 행을 계산 유지하기 위해 자동 증가를 사용한다인가?

답변

2

기본 키를 늘리려면 AUTOINCREMENT를 사용하고 테이블의 행 수를 계산하는 간단한 쿼리를 사용하십시오. AUTOINCREMENT를 사용하여 행 수를 계산하지 마십시오.

SELECT COUNT(*) FROM table_name

1

당신은 당신의 행에 대한 고유 ID를 보장하기 위해

SELECT Count(*) FROM tableName 

를 사용하여 행의 수를 계산해야합니다, 당신은 자동 증가 기능을 사용할 수 있습니다. 그것이 그 목적이며 그것이 무엇을 할 것인가입니다.

0

일반적으로 DB 키 인덱스에는 완벽 주의자가 될 필요가 없습니다. 고유해야하지만 중요시되는 일관성은 99 %의 시간에 중요합니다. AUTOINCREMENT는 키 ID가 고유해야합니다 확인하고 당신이 그것을 사용해야하는 이유입니다. 당신이 그것을 필요로하지만 당신은 안드로이드에 일관된 ID 행 와 함께 일을 생각 할 수있는 모든 다른 보조 거기 할 수있는 기회가있다, 그래서 당신이 일관된 키를 원하는 이유를 모르는의 코스

-에 대한 카운트하고 테이블을 통해 커서를 사용할 수 있습니다.

관련 문제