シーケンスとは?シーケンス
シーケンスとは、一意な連番を払い出す、表から独立したデータベースオブジェクト。トランザクションの外側で採番されるため、複数の処理が同時に要求しても互いを待たずに重複しない値を得られる。代理キーや伝票番号の採番に使い、増分値・初期値・上限や循環の有無を定義時に指定できる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
採番用の表に対して「現在値を読んで1を足して書き戻す」方式を採ると、同時に走った処理が同じ値を読んでしまう。防ぐには採番の間ロックで直列化するしかなく、今度はその1行が全処理の詰まりどころになる。採番だけをトランザクションの外に出すことで、この待ちを作らずに一意性を保っている。
具体例
PostgreSQLの CREATE SEQUENCE と nextval、Oracle Databaseの シーケンス名.NEXTVAL。受注番号を採番し、その値を受注明細の外部キーへ引き継ぐ使い方が典型である。
試験での引っ掛け
払い出した番号はロールバックしても戻らないため欠番が生じ、キャッシュを効かせるとサーバ再起動でもまとめて飛ぶ。連番が欠けてはならない法定帳票の番号などには、この仕組みは使えない。
関連用語
出た過去問
出典:令和6年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問1(IPA)
SQLのシーケンスに関する説明のうち、適切なものはどれか。
正解:トランザクション開始後のシーケンスの値の取得による現在基底値の変更は、トランザクションのロールバックでその変更を取り消すことができない。
要点:シーケンスの採番はロールバックで戻らず欠番が生じる
シーケンスは、採番用のオブジェクトとして値を払い出す仕組みであり、NEXT VALUE FOR などで値を取得した時点で現在基底値が進む。この採番の進行はトランザクションの制御対象外に置かれており、あとでロールバックしても消費した番号は戻らない。そのため採番結果に欠番が生じることがあり、連番であることを業務要件に依存させてはいけない、というのが実務上の注意点である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。