2011-11-28 80 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行 做的一個機會 - 爲計數和通過你的桌子,你可以使用遊標。