Android 如何在一个表中仅存储100个元素
我有一张叫“分数表”的房间桌子。我只想储存最后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 = "
@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当然可以。谢谢