データベーススペシャリスト令和6年秋期 午前Ⅱ 問1

問1

SQLのシーケンスに関する説明のうち,適切なものはどれか。
  • 現在基底値が0→1→2→0→1→2→0→...のように,周期的に繰り返すシーケンスを定義することはできない。
  • シーケンスの現在基底値を,最小値と最大値との間の任意の整数値に変更することはできない。
  • シーケンスの増分を,負の整数値にすることはできない。
  • トランザクション開始後のシーケンスの値の取得による現在基底値の変更は,トランザクションのロールバックでその変更を取り消すことができない。

分類

テクノロジ系 » データベース » データ操作

正解

解説

SQLのシーケンスとは、DBMSが連続した一意の数値を自動的に生成する機能です。この機能は、主キーの連番などを自動で割り振る用途などで使用されます。

シーケンスには、初期値(START WITH)、最大値や最小値(MAXVALUE、MINVALUE)、増分間隔(INCREMENT BY)、番号を繰り返すかどうか(CYCLE)などを設定できます。
CREATE SEQUENCE customers_seq
 START WITH 1000
 INCREMENT BY 1
 NOCACHE
 NOCYCLE;
  • CYCLEオプションを指定することで、最大値に達したら最小値に戻ることが可能です。
  • ALTER SEQUENCE文を使うことで、シーケンスの動作を指定しなおすことができます。この中でRESTART START WITH句で指定すれば、シーケンスの現在基底値を任意の値に変更することができます。
  • 増分間隔のデフォルトは1ですが、0以外の任意の整数を設定することができます。負数も許容されます。
  • 正しい。シーケンスはトランザクションとは独立して管理されるため、トランザクション内で行われた現在基底値の変更は、トランザクションがロールバックされても元に戻りません。
© 2016- データベーススペシャリストドットコム All Rights Reserved.

Pagetop