4

約2,000,000エントリのmysqlテーブルがあり、主キーは自動インクリメントです。ただし、ある時点で、自動増分値が元の値(約2,000,000)から最大整数値(2,147,483,647)に突然ジャンプしました。言うまでもなく、このテーブルへの後続の挿入はすべて失敗しました。気付いたとき、主キーの型をintからbigintに変更したので、今のところ正常に動作します。

だから私の質問は、なぜこれが起こったのかということです。そして、これが将来起こるのを避けるために私が取ることができる予防策はありますか?

4

2 に答える 2

7

挿入に失敗しても、自動インクリメント列が増加する可能性があります。プログラムが無限ループの失敗に陥った場合、制限に達する可能性があります。

プログラムで自動インクリメントを特定の値に設定することもできます。

ALTER TABLE yourtable AUTO_INCREMENT = 12345;
于 2012-04-06T10:12:07.030 に答える
0

この理由の1つは-

自動インクリメントの列に乱数を入力した場合auto_increment、昇順でしか機能しないことが原因である可能性があります。そのため、上限に近い数値を入力すると、すぐに上限に達し、それ以外は何も入力できなくなりました。

于 2012-04-06T11:18:40.713 に答える