【问题标题】: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 中 - 为了计算和浏览您的表格,您可以使用光标。