2011-07-13 81 views
6

我在我的android sqlite數據庫中有一個表。有一個字段'id'是自動遞增主鍵。我的應用程序服務在表中每分鐘插入一行。在某些點時間我刪除超過5天的條目。因此,總條目是有限的。但id正在增加。所以我對id的價值感到迷惑,因爲它隨着每個新條目的增加而增加。當'id'字段超過最大值?這個字段的最大值是多少?在這種情況下如何處理這個問題?我真的可以在這裏使用自動增量字段嗎?瞭解android sqlite自動增加字段

表創建語句:

create table datausage (id integer primary key autoincrement," 
      + "date date not null,time text not null,level integer) 

回答

20

this的官方文檔。最大可能的ROWID是9223372036854775807,如果您正在寫入1000個條目,則每秒會持續超過10675199116天:我認爲您不會遇到任何問題。

當到達時,數據庫將開始挑選未使用的ID,所以你也會沒事的。

使用自動增量:這是您可以使用的最佳選擇。

編輯:此外,它被稱爲AUTO INCREMENT的原因。它應該會自動增加。

+0

謝謝費米,我得到了答案 – Rasel

4

自動遞增主鍵將繼續永久增加(按我們的說法),並且不會替換已刪除的記錄。即使刪除舊記錄,ID字段也會不斷增加。

正如在其他答案中已經指出的那樣,該領域還有足夠的空間。

+0

我的意思是它不會立即重疊。它會一直等到最大值。 –

+0

這是正確的。 – Femi

+0

謝謝,還有一個upvote(Fergus Barker),因爲我不能接受兩個答案。 – Rasel

0

如果您希望根據您的邏輯放置自己的值,則不需要使用自動增量,每次插入行時都會增加該值。相反,如果要使用自動增量,則可以刪除表並重新創建表。