Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不损坏自动增量sqlite的情况下更改行id_Sqlite_Auto Increment - Fatal编程技术网

在不损坏自动增量sqlite的情况下更改行id

在不损坏自动增量sqlite的情况下更改行id,sqlite,auto-increment,Sqlite,Auto Increment,我有一个包含10行的sqlite表。结构如下: -------------------- id - Name - Address 1 - John - LA 2 - Mike - CA ... --------------------- 我想将最后一行id(id=10)更改为(id=2),并将第二行ow(id=2)更改为最后一行(id=10),而不破坏自动增量,以便插入新行时不会中断或重新开始 我怎样才能做到这一点 都是关于表中使用的最大值,因此您可以简单地使用一些您知道不使用

我有一个包含10行的sqlite表。结构如下:

--------------------
id - Name - Address
1  - John - LA
2  - Mike - CA
      ...
---------------------
我想将最后一行id(id=10)更改为(id=2),并将第二行ow(id=2)更改为最后一行(id=10),而不破坏自动增量,以便插入新行时不会中断或重新开始

我怎样才能做到这一点

都是关于表中使用的最大值,因此您可以简单地使用一些您知道不使用的小值:

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;

您能更新两行中的值吗?不要弄乱自动递增列。不要这样做。是的,但是这个表有14列。谢谢!。它很好用。我只需要添加
COMMIT在查询的开头以避免错误:
无法在事务中启动事务:开始再次感谢好吧,你应该知道你是否已经开始了交易。(Python中的除外,因为Python中的