我当前的Android应用程序使用Room / SQLite数据库
我的一个房间实体需要一个序列列,该列在我每次插入新行时都会递增。
我希望此序列是自动生成的,但是似乎autoGenerate仅适用于PrimaryKey(s)
如果不是主键,是否可以在“房间自动递增”中添加一个Int列?
答案 0 :(得分:1)
在大多数情况下,会自动生成一个包含唯一值(我认为是整数)的列。这称为rowid
。每次插入一行时,此rowid
列都会自动增加(有关rowid
here的更多信息)。
rowid
通常不包含在SELECT *
中,因此您需要手动将其包含在DAO @Query
中。见下文:
@Query("SELECT *, rowid FROM my_table")
fun get(): MyEntity
或在Java中:
@Query("SELECT *, rowid FROM my_table")
public MyEntity get();
请注意,如果您的主键是整数,则它实际上是rowid
列的别名。再次,请参阅我上面提供的链接以获取更多信息。
希望这会有所帮助!