删除行后,SQLite ID行未遵循顺序

时间:2018-08-13 10:51:09

标签: android sqlite

我正在尝试做笔记应用程序,而我编写应用程序以删除特定行的方式就是这样-

第一-如果用户从recyclerView上点击任何cardView,则第一个活动将使用getAdapterPosition()转发cardView位置。

SECOND-第二个活动接收cardView的位置,以从SQLite数据库中删除特定行,我称之为“ totalNotes()”的方法,该方法将返回SQLite中存在的总行数数据库。最后,要删除该行,我需要使用getAdapterPosition()减去从'totalNotes()'方法接收的数字。

问题-他们以我的方式进行编程,仅当数据库中的行按顺序排列时才起作用。但是,当用户要从5行中删除行号3和2时,剩余行是1,4和5。如何使数据库在行删除后自动实现顺序顺序?

我已经在站点上研究了“几乎”类似的问题,但是当我尝试在我的代码中实现时,它们却失败了。我是Android开发的新手。

[演示图片] [2]

如何分配顺序ID?

How my app looks like

2 个答案:

答案 0 :(得分:1)

您不应基于连续的行号。几乎(如果不是全部)所有数据库在自动增量字段上具有相同的行为。从数据库中获取数据时,您还需要获取ID,并将ID保留在APP中,因此从数据库中删除时,您将基于该ID进行删除:

paginatedData

答案 1 :(得分:0)

使用顺序ID是不好的,因为当您使用Id = 5删除记录时,添加到表中的下一条记录也不会是Id = 5,而将是{{1 }},因此迟早会给您带来麻烦。

@Simion建议的方式是:

  1. 您要索取所有数据(即所有便笺)
  2. 选择一个便笺时,您要求该便笺的Id = 6,并将其保存在变量中。
  3. 如果用户决定删除该笔记,则应该执行Id,这样您就可以将所需的任何内容用作deleteNote(noteId),而不必依赖Id是连续的(就像我之前说的那样,通常是个坏主意)
相关问题