在不破坏自动增量 sqlite 的情况下更改行 ID

Change row id without corrupting auto increment sqlite

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

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

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

我怎样才能做到这一点?

Autoincrementing是关于最大值在table中使用的,所以你可以简单地使用一些小[=16] =] 您知道未被其他用途的值:

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;