【问题标题】:Updating all data in one column in sqlite在 sqlite 中更新一列中的所有数据
【发布时间】:2012-12-30 09:06:17
【问题描述】:

我在 sqlite 数据库中有数据。每个数据都有ID,这是我从数据库中删除数据时的主键,我想使用数据库中所有数据的ID。 例如,

+----+--------+
| ID |  NAME  |
+----+--------+
| 01 | Taylor |
+----+--------+
| 02 |  Mark  |
+----+--------+
| 03 |  Bell  |
+----+--------+
| 04 |  Jane  |
+----+--------+

然后我从数据库中删除02 | Mark,然后数据库必须自动使用ID

+----+--------+
| ID |  NAME  |
+----+--------+
| 01 | Taylor |
+----+--------+
| 02 |  Bell  |
+----+--------+
| 03 |  Jane  |
+----+--------+

谢谢。

【问题讨论】:

  • 我不知道您的用例,但是更改数据库中记录的 ID 听起来不是一个好主意。
  • 数据库中数据的目的只是为了显示在屏幕上,用户可以从数据库中删除数据。 PS。我只是第一次使用数据库。我的方法可能是错误的。你可以给我这个案例的正确方法。
  • 您不会向用户显示 ID,是吗?所以它们是否不连续并不重要。只需在程序内部使用 ID 来识别特定记录。

标签: android sqlite


【解决方案1】:

不要那样做。不要仅仅因为删除记录就更改数据库中的 ID。即使 SQLite 不是“真正的”数据库 - 不要那样做。

相反,您可以在查询数据库时获取行号。基于answer here,你可以这样做:

SELECT id, name, 
    (SELECT COUNT(*) FROM table AS t2 
        WHERE t2.id<=t1.id) AS row_num
FROM table AS t1
ORDER BY id

注意:如果您的表很大,此查询可能会成为性能问题。暂时不要担心,但请记住。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2021-11-23
    • 2023-03-10
    • 2021-03-24
    • 2013-01-03
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多