シーケンス
次の番号を順に払い出すことだけが仕事のデータベースオブジェクト。SERIAL や IDENTITY の裏側にあり、主キーを生成する通常の手段である。
多くの人が驚くのは、欠番が出るのがまったく普通だという点だ。シーケンスは意図的にトランザクション対象外になっている。値を取得してトランザクションをロールバックしても、その値は戻らない。戻すとすべての INSERT が直列化され、性能が崩壊するからだ。セッションごとのキャッシュや再起動でも、さらに番号が飛ぶ。つまり番号は一意で増加するが、連続するとは限らない。請求書番号のように欠番が許されない連番を、シーケンスの上に直接作るのはよくある間違いで、それにはロック付きの専用テーブルが必要になる。IDENTITY は SQL 標準の構文で、PostgreSQL では SERIAL より推奨される。