在不破坏自动增量 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;
我有一个包含 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;