java - 从 SQLiteDatabase 中删除一个元素是否会反射(reflect)其他元素 ID 的变化?

标签 java android sqlite

我正在 Android Studio 中研究数据库的结构。我还没有处于测试阶段,但是了解其工作原理的较小细节将使我能够尽早编写更好的结构。不幸的是,有一个我不确定的小元素已被证明很难在网上找到。

我创建一个 SQLiteDatabase,并使用它来存储我在名为 Task 的类中表示的值。当我将每个 Task 输入数据库时​​,我还会检索 Id 以存储到本地容器 newTask 中,使用 newTask.SetId(mTaskDataSource.Create(newTask) )。我最终使用 SQLiteDatabase 跨 session 存储任务,并使用 RecyclerView 在 Activity 中显示列表。这意味着我必须跟踪 SQLiteDatabaseRecyclerView 中的元素位置。

如果我删除数据库中的一个元素,连续的元素 ID 会“向下级联”,还是会保留其原始值?如果需要示例,请考虑我的数据库存储元素并显示 ID。如果我从 {0, 1, 2, 3} 开始,并删除元素 2,我的数据库会将其 Id 平衡回 {0, 1, 2 },或者我会有 {0, 1, 3}

当我致力于实现平衡的假设时 ({0, 1, 2}),我意识到我可能会为自己设定很多目标如果我的假设是错误的,就会有额外/多余的工作。如果它不能以这种方式平衡,是否有一种相当便宜的方法来做到这一点?

我想问 ID 号是否会自行重新平衡。这与询问身份证号码的实际用途不同,也不是对我的问题有任何有效用途的重复问题。 我具体询问的是SQLiteDatabase不是通用适配器

最佳答案

删除一行时,数据库不会更改其 ID 或其他行中的任何其他数据。 ID只是为了方便连接查询等,所以不能更改。

如果您想要有特定的顺序,则不需要使用行 ID。数据会按照您添加的顺序返回,因此您可以使用它们的顺序索引(数据库中的行索引)作为回收器 View 索引。

关于java - 从 SQLiteDatabase 中删除一个元素是否会反射(reflect)其他元素 ID 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866296/

相关文章:

java - Intellij Idea 评论错误

java - HBase 连接拒绝

android - 如何查询 SQLite 中的行并找到最低值?

.net - SQLite,将平台特定的 dll 复制到 bin 文件夹

java - 使用PreparedStatement的SQLite函数

Java泛型,大声朗读代码时怎么说?

java - 使用 scenebuilder 将字符串输出到文本字段 javafx

android - 如何通过 GCM.send 发送整数、bool

java - Android 中的 SAX XML 解析

java - 某些 mipmap 不显示