为什么MySQL表auto_increment重置为0?

时间:2013-03-25 10:35:56

标签: mysql ruby-on-rails centos

今天我发现几个表的auto_increment值被重置为0.为什么?

  • Rails 2.3.x
  • MySql 5.0.x

信息:

  • 这些表通常为空(创建行然后删除)
  • 服务器为init 6

应用程序取决于auto_increment id,所以我想知道防止再次发生这种情况。

1 个答案:

答案 0 :(得分:3)

让我猜一下:你正在使用InnoDB。

InnoDB存储引擎stores the auto increment count in memory;重启MySQL时会重置它。

解决方案是将最高值存储在某个表中,并在系统启动时进行恢复。或者,根据您的使用情况,您可能会发现保留单个MyISAM表只是为了提供AUTO_INCREMENT值。

您可以找到fun facts about AUTO_INCREMENT here的汇编。