android中主键的自动更新

时间:2013-03-12 10:02:25

标签: android android-sqlite

我使用SQLiteOpenHelper创建了表格,我创建的表格的图像在下面给出了

在此之后我从表中删除了第一行,现在我的表看起来像这个enter image description here

您可以看到ID现在以2开头。 所以我的问题是当我删除第一行时id第一列转到2 请帮我解决这个问题。我想要一张看起来像这样的桌子。 enter image description here

2 个答案:

答案 0 :(得分:1)

  

你可以看到id现在以2开头。所以我的问题就是我   删除id第一列转到第一行的第2行请帮我   解决这个问题

id值没有问题。如果您正在使用自动增量,这是正常行为。在autoincrement的情况下有内部迭代器,它没有“记忆”。

想象一下这种情况:您有两行ID为1,2。

删除第一行时会发生什么?

在db中将保留一行id为2,但是如果你要插入下一行,这行将自动具有值id而不删除1如果你将删除第一行,第二行不会将值更改为1

在另一种情况下,如果您不使用自动增量,这是可能的(只能以编程方式进行),但我认为这种方法无效。如果你有例如milion记录,那么每行的id应该改变吗?这病了。

所以这里真的不是问题,而是正常行为。

答案 1 :(得分:0)

您的问题可能是以下之一:

  • 您的ID字段简称为id,而Android使用传统名称_id(作为Java常量,BaseColumns._ID)。

  • ID字段的类型应为INTEGER PRIMARY KEY