sql >> データベース >  >> RDS >> PostgreSQL

主キー値が正しくインクリメントされない

    シーケンスからデフォルトをとるシリアル列は決してありません ギャップレスであることが保証されています 。それらは一意であることが保証されています および昇順 (定義どおり)および同時使用しても安全
    シーケンスから番号を取得したトランザクションがロールバックされた場合、その番号は焼き付けられ、再度使用されることはありません... ドキュメントごと:

    427 -> 4357のような大きなギャップがある場合 、これは深刻な問題を示しています。他の列(または任意のプロセス)が同じシーケンスから描画されているか、アプリケーションロジックに問題があり、何らかの理由で多くのシリアルIDが書き込まれています。

    典型的な候補は、ループがうまくいかなかったか、トランザクションがコミットされなかったことです。




    1. mysql_fetch_assocを1回以上使用しないのはなぜですか?

    2. MySQLデータベースとテーブルを修復する方法

    3. 多対多のHibernateマッピングとmysqlスクリプト-永続性の問題

    4. 遅延セグメント作成機能が有効になっていません(ORA-00439)