0

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

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

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

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

谢谢。

4

1 回答 1

3

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

相反,您可以在查询数据库时获取行号。根据此处的答案,您可以执行以下操作:

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

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

于 2012-12-30T09:11:12.623 回答