每次重启服务时,自动增量都会重置为0

时间:2011-11-13 15:46:45

标签: mysql auto-increment

它一直工作到现在,但是当我重新启动服务时,数据库丢失了我的表的自动增量值。这肯定是我对我的查询做的事情,因为我最近没有修改我的表。它可能是什么?

2 个答案:

答案 0 :(得分:3)

这是记录在案的行为,它不是一个错误 当服务器启动时,它会通过每个(InnoDB)表确定新的auto_increment值应该是什么。来自http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment-handling.html

  

只要服务器运行,InnoDB就会使用内存中的自动增量计数器。当。。。的时候   服务器停止并重新启动,InnoDB重新初始化每个表的计数器   首先INSERT到表,如前所述。

当您部署导致表重建的DDL时,它会执行类似的操作,例如更改engine - 甚至将其更改为之前的值。

答案 1 :(得分:0)

ALTER TABLE table_name ENGINE = MyISAM

适合我。 InnoDB将AI存储在内存中,因此当重新启动mysql服务器时,它会重置为当前行数+ 1。因此,如果重新启动服务器时表格为空,则会将其重置为1。

另一方面,MyISAM构建得很好。