限制房间数据库中的行数

x10*_*ion 12 java android android-room

如何通过删除行中最旧的项目并插入最新的项目来限制Android会议室数据库中的行数

在向数据库添加项目时,我猜它是一个标准查询?

编辑:我想限制数据库表的最大行数为20.如果达到该限制,我们删除最旧的项目并通过将当前行计数保持为20来插入新项目.

Kun*_*unu 15

我认为您可以将数据插入表中,然后删除除最后20行之外的所有行(限制)

要删除,您可以使用以下查询

DELETE FROM tableName其中id NOT IN(SELECTName from tableName ORDER BY id DESC LIMIT 20)

在这种情况下,id是设置为自动递增的主键.如果按日期存储,也可以使用日期作为键

  • 这实际上会*删除多达 25 行*,而 OP 试图*保留不超过 25 行*。 (2认同)

Md.*_*rim 15

以下是示例解决方案:

查询是:

@Query("SELECT * FROM user LIMIT :limit OFFSET :offset")
    User[] loadAllUsersByPage(int limit,int offset);
Run Code Online (Sandbox Code Playgroud)

在这里,它将根据限制和偏移给出用户列表.

如果 loadAllUsersByPage(2,0)它将从表返回前两行.

如果 loadAllUsersByPage(2,1)它将返回表中的第3行和第4行.

但如果 loadAllUsersByPage(-1,10)那时它将从表中前10行.