将autoincrement id字段增加一个

tes*_*ing 5 mysql sql database increment auto-increment

我有一个MySQL 5服务器和一个表,在id字段(主键)上有一个自动增量.现在我想在两者之间添加一条记录,所以我必须将所有其他ID增加一个.这是我试过的:

UPDATE myTable SET id=id+1 WHERE id >= 53
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为例如id = 52的记录已经存在.我怎样才能做到这一点?如果他从最后一个条目开始并进行更新,我认为应该可行.但是怎么样?

ype*_*eᵀᴹ 12

我认为这没有充分的理由.只有问题.在运行下面的语句之前,请检查是否已FOREIGN定义键,引用它id.它们被设定为ON UPDATE CASCADE?此外,您是否有任何与此表相关的触发器?

但首先要考虑的是,为什么你(想你)需要这个.是否会用于订购桌子?在这种情况下,正如@Mark指出的那样,您应该使用单独的列来指定所需的顺序.


但是,如果您确定自己真的想要这个,请使用:

UPDATE myTable 
SET id = id + 1 
WHERE id >= 53
ORDER BY id DESC  ;
Run Code Online (Sandbox Code Playgroud)


jue*_*n d 6

快速而肮脏,您只需 2 步即可完成。

  • 将 id 增加到比所有其他人更高的数字
  • 将所有 ID 减少到您想要的数字

像那样

UPDATE myTable SET id=id+10000 WHERE id >= 53
UPDATE myTable SET id=id-9999 WHERE id >= 53
Run Code Online (Sandbox Code Playgroud)