PostgreSQLのシーケンスがスキップする PostgreSQLにて、 シーケンスをとあるテーブルのPK値に用いています。 ある時、このシーケンスがスキップしていることに気づきました。 しかも1度や2度ではありません。 また、このスキップ数は一定であり毎回33増加してました。 シーケンスの増分値には1を設定していたため、詳しく調べることにしました。 原因 シーケンスは取得時のコストを削減するためにある程度の値を前もってキャッシュしています。 そのため、シーケンス取得後にDBの強制終了が発生するとキャッシュが失われ、再取得時にはキャッシュした分をスキップした値が取得されます。 シーケンス取得
