了解android sqlite自动增量字段

时间:2011-07-13 04:56:03

标签: android sqlite

我的android sqlite数据库中有一个表。有一个字段'id'是自动增量主键。我的应用服务在表中每隔几分钟插入一行。在某个时间点我删除了这个条目超过5天。总进入是有限的。但是id正在增加。所以我对id的值感到困惑,因为它随着每个新条目的增加而增加。当'id'字段超过最大值时会出现什么情况?这个字段的最大值是多少?如何在这种情况下使用它?我能在这里真正使用自动增量字段吗?

表格创建声明:

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

3 个答案:

答案 0 :(得分:22)

有关官方文档,请参阅this。最大可能的ROWID是9223372036854775807,如果你正在写1000个条目,则每秒会持续超过10675199116天:我不认为你会遇到这个问题。

当达到目标时,数据库将开始挑选未使用的ID,因此您也可以。

使用AUTO INCREMENT:这是您可以选择的最佳选择。

编辑:同样,它被称为AUTO INCREMENT有一个原因。它应该会自动增加。

答案 1 :(得分:4)

自动递增主键将继续永久增加(在我们的术语中),并且不会替换已删除的记录。即使您删除旧记录,id字段也会不断增加。

正如其他答案所述,这个领域也有足够的空间。

答案 2 :(得分:0)

如果你想根据你的逻辑放置你自己的值,你不需要使用自动增量,它会在你每次插入行时增加值。如果你想使用自动增量,你可以删除表并重新创建表。