【问题标题】:Android SQLite dilemmaAndroid SQLite 困境
【发布时间】:2012-01-08 05:12:49
【问题描述】:

我想为特定表中的每个新条目将整数主键增加 1。我读到我可以通过使用 AUTOINCREMENT 来做到这一点。另一方面,我发现以下注释:

请注意,“单调递增”并不意味着 ROWID 总是恰好递增 1。一种是通常的增量。但是,如果插入由于(例如)唯一性约束而失败,则失败插入尝试的 ROWID 可能不会在后续插入中重复使用,从而导致 ROWID 序列中的间隙。 AUTOINCREMENT 保证自动选择的 ROWID 会增加,但不保证它们是连续的。

所以我的问题是,我应该使用自动增量来继续计算表格中的行数吗?

【问题讨论】:

    标签: android sqlite primary-key auto-increment


    【解决方案1】:

    使用 AUTOINCREMENT 增加主键和一个简单的查询来计算表中的行数。不要使用 AUTOINCREMENT 来计算行数。

    SELECT COUNT(*) FROM table_name

    【讨论】:

      【解决方案2】:

      你应该计算行数

      SELECT Count(*) FROM tableName
      

      为确保行的唯一 ID,您可以使用 autoIncrement 函数。这就是它的目的,这就是它要做的事情。

      【讨论】:

        【解决方案3】:

        通常,您的数据库键索引无需完美主义 - 重要的是它必须是唯一的,但在 99% 的情况下,一致性并不重要。 AUTOINCREMENT 确保您的密钥 ID 是唯一的,这就是您应该使用它的原因。

        当然,我不知道你想要一个一致的密钥的原因,所以你有可能确实需要它,但是 对于你想用一致的 id 行做的任何事情,还有其他帮助 在 Android 中 - 为了计算和浏览您的表格,您可以使用光标。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-27
          • 2018-04-21
          • 2011-04-14
          相关资源
          最近更新 更多