2011-11-28 48 views
0

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

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

所以我的问题是,我应该使用自动增量来保持统计表中的行吗?

回答

2

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

SELECT COUNT(*) FROM table_name

1

你应该使用

SELECT Count(*) FROM tableName 

为确保您行的唯一ID统计的行数,你可以使用自动增量功能。这是它的目的,那就是它会做的。

0

通常不需要完美主义与你的数据库密钥索引 - 其重要的是它将是唯一的,但在99%的时间一致性并不重要。 AUTOINCREMENT确保您的密钥ID是唯一的,这就是您应该使用它的原因。

的,当然,我不知道你想有一个一致的关键原因所以你确实需要它,但 还有其他辅助任何你会觉得在Android中使用一致的ID行 做的一个机会 - 为计数和通过你的桌子,你可以使用游标。