Java 如何使用android从SQLite中存储的数据中获取序列号之间的间隔

Java 如何使用android从SQLite中存储的数据中获取序列号之间的间隔,java,android,sqlite,sequential,Java,Android,Sqlite,Sequential,我正在开发一个android应用程序作为我的期末项目,我遇到了一个问题 我已经在SQLite中创建了一个表,其中存储了来自用户的信息,如ID、姓名、电话、电子邮件地址等。但是我希望以有序的方式插入数据,以便始终使用顺序顺序插入用户。在我的Add_new_user_活动中,我有一个EditText字段,我想用表中现有ID中的下一个可用ID动态自动设置该字段,但我不知道如何处理在两个连续ID之间删除用户时可能产生的间隙 假设我在表中有以下顺序记录: 从1到50的用户及其对应的ID 然后我删除27和2

我正在开发一个android应用程序作为我的期末项目,我遇到了一个问题

我已经在SQLite中创建了一个表,其中存储了来自用户的信息,如ID、姓名、电话、电子邮件地址等。但是我希望以有序的方式插入数据,以便始终使用顺序顺序插入用户。在我的Add_new_user_活动中,我有一个EditText字段,我想用表中现有ID中的下一个可用ID动态自动设置该字段,但我不知道如何处理在两个连续ID之间删除用户时可能产生的间隙

假设我在表中有以下顺序记录:

从1到50的用户及其对应的ID

然后我删除27和29用户

下次我想添加一个新用户时,我想让EditText知道ID 26和28之间有一个间隙,并将27作为新用户ID,如果我添加新用户,也会这样做。在这种情况下,如果我再添加两个新用户,他们各自的ID将分别为29和51

有没有办法有效地解决这个问题


提前谢谢你

您试图做的事情听起来很危险,因为这不是自动增量的预期用途

如果确实要查找未使用的最小键值,则根本不要使用“自动增量”,而是手动管理键值。但是,这不是推荐的做法


退一步问“为什么需要循环使用键值?”unsigned INT(或BIGINT)是否没有提供足够大的键空间?

您需要在数据库中再添加一个字段,比如“deleted”,每当您删除一个用户时,只需将其设置为1。现在,每当您必须首先添加一个新用户时,您需要以升序获得“已删除”字段中有1个用户ID的列表。列表的第一个值将保存所需的ID。然后,您可以只更新具有该ID的值。如果没有此类字段,请使用递增ID进行插入。

为什么要有此行为?没有充分的理由你不应该做这么复杂的事情。。。