我使用 SQLiteOpenHelper 创建了表,我创建的表的图像如下所示
在此之后我从表中删除第一行,现在我的表看起来像这样
您可以看到 id 现在以 2 开头。所以我的问题是当我删除第一行时,id 第一列变为 2 请帮我解决这个问题。我想要一张像这样的桌子。
我使用 SQLiteOpenHelper 创建了表,我创建的表的图像如下所示
在此之后我从表中删除第一行,现在我的表看起来像这样
您可以看到 id 现在以 2 开头。所以我的问题是当我删除第一行时,id 第一列变为 2 请帮我解决这个问题。我想要一张像这样的桌子。
您可以看到 id 现在以 2 开头。所以我的问题是当我删除第一行时,id 第一列变为 2 请帮我解决这个问题
id值没有问题。如果您是否使用自动增量,这是正常行为。在自动增量的情况下,它有内部迭代器并且它没有“内存”。
所以想象一下这个场景:你有两行 id 1、2。
当您删除第一行时会发生什么?
在 db 中将保留 id 为 2 的一行,但如果您将插入下一行,则该行将自动具有值 id 3 未删除 1 如果您将删除第一行,第二行也不会将值更改为 1。
在另一种情况下,如果您不使用自动增量,这是可能的(仅以编程方式进行),但我认为这种方法无效。如果您将拥有例如百万条记录,那么每一行的 id 都应该更改吗?这是病态。
所以这里真的不是问题,而是正常的行为。
您的问题可能是以下之一:
您的 ID 字段简称为id
,而 Android 使用常规名称_id
(作为 Java 常量,BaseColumns._ID
)。
ID 字段应该是类型INTEGER PRIMARY KEY