当大量数字已存在时重置MySQL auto_increment?

Cha*_*ink 6 mysql auto-increment

我有一个带有自动递增列的表.我需要将其中一行设置为1000而不再触摸它,但现在我已将其设置为1000,自动增量保持从1001开始并拒绝从1开始.有没有办法解决这个问题?

Álv*_*lez 8

你不能:

要更改要用于新行的AUTO_INCREMENT计数器的值,请执行以下操作:

ALTER TABLE t2 AUTO_INCREMENT = value;

您不能将计数器重置为小于或等于任何已使用的值.对于MyISAM,如果该值小于或等于AUTO_INCREMENT列中当前的最大值,则该值将重置为当前最大值加1.对于InnoDB,如果该值小于列中的当前最大值,则不会发生错误,并且不会更改当前序列值.

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html


oez*_*ezi 3

简单而简短的答案:你不能这样做。

如果可以的话,如果从 1 开始自动增量并插入 1000 行会发生什么?由于“重复键”错误,最后一个无法插入。

如果您必须有一个预定义的条目,并且其 id 永远不会改变且易于记住,为什么不使用 0 呢?或者,如果您确实需要使用 1000,那么让其他列从 1001 开始有什么问题呢?