gpt4 book ai didi

sql - 如何重新索引(数字)排序的sqlite表

转载 作者:行者123 更新时间:2023-12-03 16:51:32 39 4
gpt4 key购买 nike

例如,我有带索引的节点

1
2
7
8

我需要将索引更改为

1 
2
3
4

我可以

UPDATE TODO SET id = id + 1000000000
UPDATE TODO SET id = id - (1000000000 + 1)

(很棘手,因为 id 必须是唯一的)

要移动所有索引并使 0 1 6 7 但我需要建立关系,需要使第一个索引移动到 0,其他索引移动到前一个索引。 sqlite 中没有存储过程,所以我很清楚如何在没有变量的情况下建立这种关系?

欢迎所有逻辑提示。

最佳答案

  1. 创建一个具有相同结构的新空表,但将 id 设为自动增量列(将其声明为 INTEGER PRIMARY KEY);
  2. 将所有记录按所需顺序复制到该表中,但不包含 id 列:

    INSERT INTO NewTable(all_the, other, columns)
    SELECT all_the, other, columns
    FROM OldTable
    ORDER BY id;
  3. 删除旧表,然后 rename旧名称的新名称。

(这将创建从 1 开始的 ids。)

关于sql - 如何重新索引(数字)排序的sqlite表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13644577/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com