MySQL:如何更新所有现有条目的自动增量?

san*_*oxj 2 mysql sql database innodb

我有一个现有的表,它使用自动增量id作为其主键。

表中有 id 从 1 开始的条目:

id    field1
==    ======
1     foo1
2     foo2
3     foo3
Run Code Online (Sandbox Code Playgroud)

有没有办法更新id所有现有条目,以便 auto_increment 从另一个数字开始?:

id    field1
====    ======
1000     foo1
1001     foo2
1002     foo3
Run Code Online (Sandbox Code Playgroud)

(如果不可能,则不一定必须保留订单)

Gor*_*off 7

您可以使用update更改值并将alter table自动增量更新为新值:

alter table t set auto_increment = 1003;  -- the next value

update t
    set id = id + 999;
Run Code Online (Sandbox Code Playgroud)

  • 只是提醒一下,您不能将表的当前“auto_increment”更新为低于表中最后使用的任何值。 (2认同)