1

我使用 SQLiteOpenHelper 创建了表,我创建的表的图像如下所示

在此之后我从表中删除第一行,现在我的表看起来像这样在此处输入图像描述

您可以看到 id 现在以 2 开头。所以我的问题是当我删除第一行时,id 第一列变为 2 请帮我解决这个问题。我想要一张像这样的桌子。 在此处输入图像描述

4

2 回答 2

1

您可以看到 id 现在以 2 开头。所以我的问题是当我删除第一行时,id 第一列变为 2 请帮我解决这个问题

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

所以想象一下这个场景:你有两行 id 1、2。

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

在 db 中将保留 id 为 2 的一行,但如果您将插入下一行,则该行将自动具有值 id 3 未删除 1 如果您将删除第一行,第二行也不会将值更改为 1。

在另一种情况下,如果您不使用自动增量,这是可能的(仅以编程方式进行),但我认为这种方法无效。如果您将拥有例如百万条记录,那么每一行的 id 都应该更改吗?这是病态。

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

于 2013-03-12T10:31:03.780 回答
0

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

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

  • ID 字段应该是类型INTEGER PRIMARY KEY

于 2013-03-12T10:22:49.110 回答