안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
sqlite db 공부를 하고 있는데요.
Table을 생성할 때 _id integer primary key autoincrement 속성을 넣어서 생성하였습니다.
예를 들어 3개의 데이터를 insert 시키면 _id 의 값이 1씩 증가하여 1, 2, 3 이렇게 생기는데요.
이 데이터들을 db.delete() 메서드를 이용하여 테이블의 데이터를 삭제해주었습니다.
그리고 다시 insert를 시키게 되면 _id 값이 1부터 시작되지 않고, 4, 5, 6 이런식으로 삭제 되기 전의 값에 대해서 증가하여 생성이 됩니다.
데이터가 삭제되었을 때 _id의 index도 초기화 시키려면 어떻게 해주어야 하나요?
고수님들 많은 답변 부탁드리겠습니다.
감사합니다.




autoincrement 속성을 주면 내부적으로 sqlite_sequence 테이블이 하나 생성됩니다.
그래서 sqlite_sequence 테이블에 마지막값이 저장되집니다.
강제로 이 테이블의 값을 찾아서 초기화 해주시거나
autoincrement 속성을 주지 마시고 코드로 현재 테이블의 _id값 중 max값을 찾아 +1 주는 식으로 해도 됩니다.