更改行ID而不破坏自动增量sqlite

时间:2017-05-22 21:03:06

标签: sqlite auto-increment

我有一个包含10行的sqlite表。结构是这样的:

--------------------
id - Name - Address
1  - John - LA
2  - Mike - CA
      ...
---------------------

我想将最后一行id(id = 10)更改为(id = 2)并将第二行(id = 2)更改为最后一行(id = 10)而不会破坏自动增量,因此当我插入时新行不会中断或重新开始。

我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

Autoincrementing完全是关于表中使用的最大值,因此您可以简单地使用一些您不知道的 small 值:< / p>

BEGIN;
UPDATE MyTable SET rowid = -12345 WHERE rowid = 10;
UPDATE MyTable SET rowid = 10     WHERE rowid = 2;
UPDATE MyTable SET rowid = 2      WHERE rowid = -12345;
COMMIT;