我需要将所有主键都移动到表格中
UPDATE TODO SET id = id + 1
Run Code Online (Sandbox Code Playgroud)
但是我不能这样做( 来自Ahmad Al-Mutawa的演示答案)描述为什么.主键不能像这样改变.
另外我不能改变表格,因为这是sqlite:http://www.sqlite.org/omitted.html
我正在考虑对其他columnts进行一些硬编码的递归更改,但是如果没有tsql和存储过程,我很难得到如何制作它?
执行UPDATE命令时,您将暂时获得重复的ID.
要避免这种情况,请分两步更改ID.
首先,选择一个大于最大ID的数字,并将其添加到所有ID:
UPDATE TODO SET id = id + 1000000000
Run Code Online (Sandbox Code Playgroud)
然后,从所有ID中减去一个:
UPDATE TODO SET id = id - (1000000000 - 1)
Run Code Online (Sandbox Code Playgroud)