You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Room Database标识符自动生成机制及删除后新增ID规则咨询

Room Database 自动生成主键的运作逻辑及场景问题解答

自动生成主键的运作机制

在Room中,给主键字段添加@PrimaryKey(autoGenerate = true)注解(仅支持int或long类型)即可启用标识符自动生成功能,其底层依赖SQLite的AUTOINCREMENT特性:

  • 数据库会维护一个名为sqlite_sequence的系统表,用于记录每个开启自动主键生成的表当前的最大标识符值。
  • 插入新记录时,数据库会从sqlite_sequence中读取对应表的当前最大值,将其加1后作为新记录的标识符,随后更新sqlite_sequence中的对应数值。

目标场景的结果:新记录标识符为4

假设数据库中原有标识符为1、2、3的三条记录,删除标识符为1的记录后:

  • sqlite_sequence中该表的最大标识符值仍为3(删除操作不会修改这个系统表的数值)。
  • 此时插入新记录,数据库会以3+1=4作为新记录的标识符,不会复用已删除的1。

内容的提问来源于stack exchange,提问作者CalmPerson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:15:09