IPA公式正解:エ トランザクション開始後のシーケンスの値の取得による現在基底値の変更は,トランザクションのロールバックでその変更を取り消すことができない。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【エ】です。シーケンス(順序生成器)は複数トランザクションからの並行アクセス時の一意性と性能を確保するため、トランザクションの独立したスコープで発番・更新されます。そのため、トランザクションがロールバックされても消費された番号は元に戻らず、欠番となります。
【詳細解説】■ 本問の核心・解法のポイント
SQLのシーケンス(SEQUENCE)は、一意な連番を高速に自動生成するためのデータベースオブジェクトです。複数のトランザクションが同時に採番を行う際、排他ロックによる待ち時間を防ぐため、シーケンスの値の進展はトランザクションのコミットやロールバックとは独立して即座に確定されます。
・各選択肢の徹底解説:
・ア:CYCLE句を指定することで、最大値に達した後に最小値に戻る循環シーケンスを定義することが可能です。
・イ:RESTART WITH句などを用いることで、シーケンスの現在値を有効範囲内の任意の整数値に変更(再設定)できます。
・ウ:INCREMENT BY句に負の整数値を指定することで、値を減少させていく降順シーケンスを定義できます。
・エ:【選択肢エ★】シーケンスからNEXT VALUE FOR等で取得した値の進展は独立して確定するため、トランザクションがロールバックされても変更は取り消されず、その番号は欠番となります。
よって正解はエです。