Android 如何在一个表中仅存储100个元素

Android 如何在一个表中仅存储100个元素,android,kotlin,android-room,Android,Kotlin,Android Room,我有一张叫“分数表”的房间桌子。我只想储存最后100个。我怎样才能使用这个房间 @Entity( tableName = "score_table", indices = [ Index(value = ["id"]) ] ) data class ScoreEntity( @PrimaryKey @ColumnInfo(name = "id") var id: Long = 0 @ColumnInfo(name = "

我有一张叫“分数表”的房间桌子。我只想储存最后100个。我怎样才能使用这个房间

@Entity(
    tableName = "score_table",
    indices = [
        Index(value = ["id"])
    ]
)
data class ScoreEntity(
    @PrimaryKey 
    @ColumnInfo(name = "id")
    var id: Long = 0

    @ColumnInfo(name = "creation_time")
    var creationTime: Long = System.currentTimeMillis()
    ...
)
要插入,我使用以下命令:

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(entity: ScoreEntity)

不确定creation_time列的用途是什么,但是如果您只是想知道最新的100行是什么,那么您可以使用rowid/autoincrement主键


然后,在
@Transaction
方法中,您可以简单地获取插入行的id(
@Insert
方法可以返回
Long
,它表示刚插入行的标识符)并删除id小于或等于
returnedValue-100

的所有内容。使用
@Transaction
功能,可以删除不需要的行,同时插入任何新行。您需要在表中设置一列,以便确定“最后一个”是什么。我认为这个链接可以帮助您添加已经说过的内容:不确定
creation\u time
列的目的是什么,但是如果您只想知道最新的100行是什么,那么您可以使用
rowid
/autoincrement主键。然后,在
@Transaction
方法中,您可以简单地获取插入行的id(
@Insert
方法可以返回
Long
),并删除id低于或等于
returnedValue-100
@MateuszHerych的所有内容,这非常聪明。如果你把它贴出来,我很乐意接受你的回答。@J_Strauton当然可以。谢谢