gpt4 book ai didi

java - SQLite在某个ID之前插入?

转载 作者:行者123 更新时间:2023-12-01 22:55:27 26 4
gpt4 key购买 nike

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

我已经搜索过了,但我不知道该怎么做。

这是我用来在首次启动时添加用户时间线的代码:

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);";

最佳答案

既然你已经设置好了,你就不能这样做。您告诉数据库自动递增键,因此它将为您提供下一个尚未使用的可用插槽。这意味着如果您有四条记录并删除最后一条,则下次插入记录时您仍将获得第五个槽。它不允许您自己设置 id 或在最后插入的记录之前插入一条记录。

您可以更改为手动管理 ID,但这会增加工作量并且容易出错,我强烈建议您避免这样做。

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

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

您还没有说您是否使用原始 SQL 或任何 android SQLite 函数,因此您可能还想查看 android sqlite 插入函数 here .

关于java - SQLite在某个ID之前插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24128145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com