重置 auto_increment 会重新排序 ID 吗?



英语不是我的母语,所以如果我的问题中有什么不清楚的地方,请原谅我,我会尽力澄清。

我必须在MySQL中进行更改,我对结果有点担心,因为更改将实时进行。我有一个表的 id 从 1-800,然后跳到 10000、10001 等。我读了多个这样的问题,你可以使用

ALTER TABLE tablename AUTO_INCREMENT = 1

我的问题是:

  1. 这会对当前密钥重新排序吗?
  2. 当我的 id 恢复到 10000 时会发生什么,ID 会被覆盖吗?(列是主要的)

如果它确实重新排序我的密钥或它们被覆盖(我不能发生这种情况),保持我的表完好无损但将 id 重置为 801 的最佳解决方案是什么?我绝对需要保持结果不变!!

感谢您抽出宝贵时间阅读/回答。干杯。

MySQL不允许您将自动增量设置为低于当前最大键值的值。因此,您的应用程序必须手动设置 id 值。

使用此查询,将表名和 id 更改为相应的表名和列名:

更新表名集 ID = ID - 9199,其中 ID>= 10000

然后将自动增量设置为适当的下一个值。

您可能希望在更改之前保留表的备份副本。

最新更新