2014-06-09 34 views
0

我有一个充满推文的数据库。当用户点击刷新时,我想获取比ID(我知道该怎么做)更新的推文。在获取推文之后,我想在ID 0之前插入它们,因此带有ID 0的推文不再是第一条推文,而是替换为较新的推文。在某些ID之前插入SQLite?

我已经搜索,我不知道如何做到这一点。

这里是我使用的添加上最早推出的用户的时间轴中的代码:

public void addTimemline(Timeline timeline){ 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 

    values.put(COL_TEXT, timeline.getText()); 
    values.put(COL_TWEET_ID, timeline.getTweetId()); 
    values.put(COL_SCREEN_NAME, timeline.getTwitterScreenName()); 
    values.put(COL_REAL_NAME, timeline.getRealName()); 
    values.put(COL_FAVORITE_COUNT, timeline.getFavoriteCount()); 
    values.put(COL_RETWEET_COUNT, timeline.getRetweetedCount()); 
    values.put(COL_HASHTAG_ENTITIES, timeline.getHashtagEntities()); 
    values.put(COL_USER_MENTION_ENTITIES, timeline.getUserMentionEntities()); 
    values.put(COL_URL_ENTITIES, timeline.getUrlEntities()); 
    values.put(COL_MEDIA_ENTITIES, timeline.getMediaEntities()); 

    db.insertOrThrow(TABLE_TWEETS, null, values); 
    db.close(); 
} 

创建声明:

private static final String TABLE_TWEETS_CREATE = "create table "+TABLE_TWEETS+" (" 
       + Tweets.COL_ROW_ID + " integer primary key autoincrement not null, " 
       + Tweets.COL_TEXT + " text not null, " 
       + Tweets.COL_TWEET_ID + " text," 
       + Tweets.COL_SCREEN_NAME + " text," 
       + Tweets.COL_REAL_NAME + " text," 
       + Tweets.COL_FAVORITE_COUNT + " text," 
       + Tweets.COL_RETWEET_COUNT + " text," 
       + Tweets.COL_HASHTAG_ENTITIES + " text," 
       + Tweets.COL_USER_MENTION_ENTITIES + " text," 
       + Tweets.COL_URL_ENTITIES + " text," 
       + Tweets.COL_MEDIA_ENTITIES + " text);"; 

回答

3

如您有它设置,你不能这样做。您正在告诉数据库自动增加密钥,因此它会为您提供下一个尚未使用的可用插槽。这意味着如果您有四条记录并删除最后一条记录,则下次插入记录时仍会获得第五条记录。它不允许你自己设置ID,或者在插入最后一个之前插入一条记录。

您可以更改为手动管理ID,但这样做更容易发生错误,我会尽力避免这样做。

你应该仔细研究SQLite的ORDER BY关键字。这将按照您在查询中定义的顺序对光标进行排序,而不是依赖记录的id顺序。如果您在数据结构中添加某种时间戳,那么当您拉动光标时,您可以按照相反的顺序进行排序。

您可以找到SQLite ORDER BY关键字here的完整文档。

你还没有说如果你使用原始的SQL或任何的android SQLite函数,所以你可能还想看看android sqlite的插入函数here

相关问题