2

今日auto_increment、いくつかのテーブルの値が0にリセットされていることがわかりました。なぜですか?

  • Rails 2.3.x
  • MySql 5.0.x

情報:

  • 通常、テーブルは空です(行が作成されてから削除されます)
  • サーバーはinit 6

アプリはauto_incrementIDに依存しているので、これが二度と起こらないようにしたいと思います。

4

1 に答える 1

3

推測させてください。あなたはInnoDBを使用しています。

InnoDBストレージエンジンは、自動インクリメントカウントをメモリに保存します; MySQLを再起動するとリセットされます。

解決策は、テーブルのどこかに最大値を格納し、システムの起動時にそれを復元することです。または、ユースケースによっては、値を提供するためだけに1つのMyISAMテーブルを保持しておくと便利な場合がありAUTO_INCREMENTます。

あなたはここについての楽しい事実AUTO_INCREMENTの編集を見つけることができます。

于 2013-03-25T10:46:27.923 に答える