例如我有索引
的节点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中没有存储过程,所以我很担心如何在没有变量的情况下建立这样的关系?
欢迎每一个逻辑提示。
答案 0 :(得分:5)
id
设为自动增量列(将其声明为INTEGER PRIMARY KEY
); 按所需顺序将所有记录复制到该表中,但没有id
列:
INSERT INTO NewTable(all_the, other, columns)
SELECT all_the, other, columns
FROM OldTable
ORDER BY id;
(这将从1开始创建id
。)
答案 1 :(得分:3)
这个怎么样?
UPDATE todo SET id = rowid