重置auto_increment会重新排序id吗?

时间:2013-09-30 13:27:02

标签: mysql sql database

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

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

ALTER TABLE tablename AUTO_INCREMENT = 1

我的问题是:

  1. 这会重新排序当前的密钥吗?
  2. 当我的id恢复到10000时会发生什么,id会被覆盖吗? (collumn是主要的)
  3. 如果它重新排序我的密钥或者它们被覆盖(我不能发生这种情况),那么保持我的表完整但将id重置为801的最佳解决方案是什么?我绝对需要保持结果不被触摸!!!

    感谢您抽出宝贵时间阅读/回答。 欢呼声。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

更新tablename set id = id - 9199,其中id> = 10000

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

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