ALTER SEQUENCE

名前

ALTER SEQUENCE  --  シーケンス生成器の定義を変更

概要

ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
  

説明

ALTER SEQUENCEは、既存のシーケンス生成器のパラメータを変更します。 ALTER SEQUENCE で指定されていないパラメータは全て、以前の設定のままとなります。

パラメータ

name

変更するシーケンスの名前です。(スキーマ修飾名も可。)

increment

INCREMENT BY increment句は省略可能です。 正の値は昇順のシーケンスを作成し、負の値は降順のシーケンスを作成します。 指定されない場合、以前の増分値が保持されます。

minvalue
NO MINVALUE

MINVALUE minvalue はシーケンスが生成する最小値を決定します。 NO MINVALUE が指定された場合、昇順、降順でそれぞれ1と-263-1がデフォルトになります。 どちらのオプションも指定されていなければ、現在の最小値が保持されます。

maxvalue
NO MAXVALUE

MAXVALUE maxvalue はシーケンスが生成する最大値を決定します。 NO MAXVALUE が指定された場合、昇順、降順でそれぞれ263-1と-1がデフォルトになります。 どちらのオプションも指定されていなければ、現在の最大値が保持されます。

start

省略可能なRESTART WITH start句は、シーケンスの現在値を変更します。

cache

CACHE cache 句により、シーケンス番号を事前に割り当て、高速にアクセスできるようにメモリに保存することができます。 最小は1です。(一度に1つの値を生成、つまり、キャッシュが無い) 指定がなければ、以前のキャッシュ値が保持されます。

CYCLE

省略可能なCYCLEキーワードを使用して、シーケンスが、昇順、降順それぞれmaxvalue または、minvalue に達した時、そのシーケンスを周回させることができます。 限界値に達すると、次に生成される番号はそれぞれ、minvalue または、maxvalueになります。

NO CYCLE

省略可能なNO CYCLEキーワードが指定されると、シーケンスの最大値に達した後のnextval呼び出しは全てエラーとなります。 CYCLENO CYCLEも指定されない場合は、以前の周回動作が保持されます。

serialシーケンスを105から再開します。

ALTER SEQUENCE serial RESTART WITH 105;

注釈

同じシーケンスから番号を取得するトランザクションの同時実行ブロックを防ぐために、ALTER SEQUENCE はロールバックできません。 この変更は即座に効果が現われ、元に戻すことはできません。

ALTER SEQUENCE は、実行したバックエンド以外のバックエンドにおけるnextvalにすぐに影響を与えません。別のバックエンドは、事前に割り当てられた(キャッシュされた)値を持っています。 事前にキャッシュされた値を全て使い果たした後に、変更されたシーケンスパラメータを検知します。 コマンドを実行したバックエンドは即座に効果が現われます。

互換性

SQL99

ALTER SEQUENCEPostgreSQLの言語拡張です。 SQL99にはALTER SEQUENCE文はありません。