MySql有时会自动回滚

时间:2017-10-19 21:07:42

标签: database innodb

我们有许多带POS系统的计算机,每个计算机都有一个本地数据库,我们在那里注册所有销售,当天结束时,我们将数据插入到主数据库中,此时我们已经观察到在某些计算机中,MySQL就像回滚一样,例如,当我们在我们的表中安装系统时,配置有自动增量ID,并设置第一次销售和ID为1000,并且此ID在1001,1002的其他销售中更改但是有一天,当id为5000时,数据库重置表中的所有数据并再次以1000开始,让你知道可能发生的事情。

谢谢!

1 个答案:

答案 0 :(得分:0)

需要更多细节才能了解发生的事情。这里有一些信息可以解释它:

在MySQL关闭或崩溃(电源故障等)并重新启动后,首先要为每个InnoDB表做AUTO_INCREMENT,然后将下一个id计算为SELECT MAX(id)+1 FROM tbl

即使这不能解释你的情况,这里有一个可能会让你感到困惑的问题:

  1. 创建ID 1234(和COMMIT it)
  2. 删除1234(及COMMIT
  3. 重启mysql(优雅地或由于崩溃)
  4. 下一个要创建的ID将是1234.如果您认为ID无法重复使用,则可能会很糟糕。
  5. 如果没有重新启动,步骤4将创建1235,而1234将永远"烧毁"。

    (注意:版本8.0会更改此行为。)