android sqlite删除行后是否有间隙?

android sqlite删除行后是否有间隙?,android,sqlite,Android,Sqlite,我有4个编辑文本在数据库中 我删除第二个 数据库编号为1,3,4 我现在希望它重新编号为1,2,3 我研究了许多解决方案 但是我找不到一个完整的答案。。 我不知道应该写些什么 我尝试了以下代码。 但事实并非如此 db.delete("SQLITE_SEQUENCE","NAME = ?",new String[]{TABLE_NAME}); 有人知道完整答案吗?一般来说,这是一个糟糕的数据库设计。一个ID对于一段数据应该是一致的,不管它的对等数据是什么——它不应该仅仅因为另一行被删除而波动 也

我有4个编辑文本在数据库中

我删除第二个

数据库编号为1,3,4

我现在希望它重新编号为1,2,3

我研究了许多解决方案 但是我找不到一个完整的答案。。 我不知道应该写些什么 我尝试了以下代码。 但事实并非如此

db.delete("SQLITE_SEQUENCE","NAME = ?",new String[]{TABLE_NAME});

有人知道完整答案吗?

一般来说,这是一个糟糕的数据库设计。一个ID对于一段数据应该是一致的,不管它的对等数据是什么——它不应该仅仅因为另一行被删除而波动


也就是说,您可以始终使用
UPDATE
语句
设置ID=ID-1,其中ID>(您删除的行的ID)
。这会奏效的。我不推荐这种方法,但您可以。

您可以通过执行SQLite命令来恢复此空间


如果我理解您的要求,请在删除后调用db.execSQL(“真空”)。。。不,ID没有重新编号。当不同的表由一个id.dataBase.execSQL(“UPDATE T1 SET id=id-1,其中id>“+rowDelete+”;”)连接时,这将非常危险;我理解正确?这不是要求的内容。@CL.看看这个例子:这不是要求的内容吗?这只适用于隐式
rowid
列;显式整数主键列永远不会被更改。