2014-05-21 3 views
0

데이터베이스의 _id 열은 INTEGER PRIMARY KEY이므로 자동 증가 열입니다. 문제는 이제 행을 삭제하고 열이 자동 증가 숫자를 업데이트하지 않는다는 것입니다.SQLite 데이터베이스 브라우저에서 _id 열을 "업데이트하는 방법"

_id 열을 업데이트하는 방법이 있습니까? 그래서 시퀀스에 구멍이 생기지 않습니까?

대단히 감사합니다.

+1

왜? ID 번호가 작동하는 방식이 아닙니다. 채워진 구멍으로 해결하려는 문제는 무엇입니까? – laalto

+0

무작위 _id 번호를 검색하는 응용 프로그램에서 해당 데이터베이스를 사용하고 있는데 _id 번호를 찾지 못하면 응용 프로그램이 작동하지 않기 때문에 진행 과정에 구멍이 필요하지 않습니다. – Frank

답변

0

아니요. 사용 방법이 아닙니다. 기본 키를 사용하지 마십시오! 격차가있을 것입니다. id은 고유 식별자입니다.

당신이 다음 순위를해야 할 경우

select t.*, @rank := @rank + 1 as gapless_rank 
from your_table t 
cross join (select @rank := 0) r 
order by id 
+1

이것은 SQLite에서 작동하지 않습니다. –

0

이 테이블에서 n 일 ID를 얻을이 같은 쿼리를 사용하려면 그렇게 할 수 있습니다

SELECT _id 
FROM MyTable 
ORDER BY _id 
LIMIT 1 
OFFSET n-1 
관련 문제