SQLの シーケンス(SEQUENCE) は、連続した数値を自動的に生成するデータベースのオブジェクトです。主に主キーなどの自動採番に利用されます。
シーケンスから値を取得して現在基底値が変更される処理は、通常のトランザクション制御からは独立しています。そのため、値を変更したトランザクションが ロールバック(取消し) されても、シーケンスの値は元に戻りません。これは、複数のトランザクションが並行してシーケンスを利用する際に、値の重複を防ぐための仕様です。
各選択肢の解説
- ア:誤り。
CYCLE オプションを指定することで、最大値(または最小値)に達した後に再び最小値(または最大値)から周期的に繰り返すシーケンスを定義することが 可能 です。
- イ:誤り。
ALTER SEQUENCE 文などを利用して、シーケンスの現在基底値を最小値と最大値の間の任意の整数値に変更することが 可能 です。
- ウ:誤り。
INCREMENT BY に負の整数値を指定することで、値が減少していく降順のシーケンスを作成することが 可能 です。
- エ:正しい。トランザクション開始後のシーケンスの値取得に伴う現在基底値の変更は、トランザクションを ロールバック しても取り消すことは できません。