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)
快速而肮脏,您只需 2 步即可完成。
像那样
UPDATE myTable SET id=id+10000 WHERE id >= 53
UPDATE myTable SET id=id-9999 WHERE id >= 53
Run Code Online (Sandbox Code Playgroud)