令和6年度 秋期 データベーススペシャリスト試験 午前II 問1
2025年6月26日
【問題1】
SQLのシーケンスに関する説明のうち、適切なものはどれか。
現在基底値が 0→1→2→0→1→2→0→… のように、周期的に繰り返すシーケンスを定義することはできない。
シーケンスの現在基底値を、最小値と最大値との間の任意の整数値に変更することはできない。
シーケンスの増分を、負の整数値にすることはできない。
トランザクション開始後のシーケンスの値の取得による現在基底値の変更は、トランザクションのロールバックでその変更を取り消すことができない。
【解説】
ア: 現在基底値が 0→1→2→0→1→2→0→… のように、周期的に繰り返すシーケンスを定義することはできない。
誤り。SQLのシーケンスには「CYCLE(サイクル)」オプションがあり、最小値と最大値を繰り返す設定を行うことができます。
イ: シーケンスの現在基底値を、最小値と最大値との間の任意の整数値に変更することはできない。
誤り。`ALTER SEQUENCE` コマンドを使用すれば、現在基底値を任意の値に変更できます。
ウ: シーケンスの増分を、負の整数値にすることはできない。
誤り。シーケンスの増分を負の値に設定することで、値を減少させることが可能です。
エ: トランザクション開始後のシーケンスの値の取得による現在基底値の変更は、トランザクションのロールバックでその変更を取り消すことができない。
正しい。シーケンスの値はトランザクションとは独立して管理されており、一度取得した値はロールバックしても元に戻りません。
【答え】
エ: トランザクション開始後のシーケンスの値の取得による現在基底値の変更は、トランザクションのロールバックでその変更を取り消すことができない。
出典:令和6年度 秋期 データベーススペシャリスト試験 午前II 問1