android sqlite3表真空无法正常工作

时间:2014-11-26 09:07:19

标签: android database sqlite vacuum

我需要在删除一些行后按顺序重新排序rowid。桌子上的真空吸尘器似乎非常适合这种情况,但由于某些原因,它没有重新排序。

sqlite> .schema inboxmessages 
CREATE TABLE InboxMessages(id text not null, title text not null, text text not null, senders_username text not null, created_at text not null, sender_image text not null, read text not null, Unique(id));

sqlite> select rowid, id from inboxmessages limit 5;
1|746915
3|746540
4|746195
5|745403
6|745371
sqlite> vacuum inboxmessages;
sqlite> select rowid, id from inboxmessages;
1|746915
3|746540
4|746195
5|745403
6|745371

怎么了?

1 个答案:

答案 0 :(得分:1)

VACUUM无法保证重新排序rowid值,如果有一些INTEGER PRIMARY KEY列,则永远不会。

如果您想拥有rowid的特定值,则必须手动设置它们。

请注意,在大多数情况下,最好只在rowid序列中留下空白。