2011년 8월 18일 목요일

sqlite3에서 vacuum으로 rowid 말아먹기

sqlite3에서는 rowid라는 컬럼이 int형의 primary key로 존재하는 것이 보장되어 있다. 문제는 vacuum시켰을 때 rowid의 값이 sqlite3에 의해서 임의로 재지정될 수 있다는 점이다.

따라서 MySQL로 치면 autoincrement, int형 PK를 안정적으로 쓰기 위해서는 rowid의 이름을 수동으로 직접 지정해줄 필요가 있다. 안드로이드에서 쓸 거면 어차피 _id로 고정일테니 크게 고민할 거리도 안 될 것이다.

댓글 없음:

댓글 쓰기