CREATE SEQUENCE

セマンティクス

schema

シーケンスを格納するスキーマを指定します。 schema を省略した場合、Oracle Database は独自のスキーマでシーケンスを作成します。

sequence

作成するシーケンスの名前を指定します。

以下の句をいずれも指定しない場合、1から始まり上限なしで1ずつ増加する昇順シーケンスを作成します。 INCREMENT BY -1 のみを指定すると、-1から始まり下限なく減少する降順のシーケンスが作成されます。

  • 無制限に増加するシーケンスを作成するには、昇順シーケンスでは MAXVALUE を省略するか NOMAXVALUE を指定してください。 下降シーケンスの場合は、MINVALUEパラメータを省略するか、NOMINVALUEを指定します。

  • 定義された上限で停止するシーケンスを作成するには、上昇シーケンスではMAXVALUEパラメータに値を指定します。 降順の場合は,MINVALUE に値を指定します。 また,NOCYCLEも指定してください。

  • 定義済みの限界に達した後に再開するシーケンスを作成するには、MAXVALUEMINVALUE の両方のパラメータに値を指定します。 また、CYCLEも指定する。 MINVALUEを指定しない場合、デフォルトはNOMINVALUEで、値は1である。

INCREMENT BY シーケンス番号間の間隔を指定する。 この整数値は正負を問わないが、0にはできない。 この値は28桁以下である。 この値の絶対値は,MAXVALUEMINVALUEの差より小さくなければならない。 この値が負であれば,シーケンスは下降する。 この値が正の場合,シーケンスは昇順となる。 この節を省略した場合、間隔はデフォルトで1です。

START WITH 生成する最初のシーケンス番号を指定します。 この節は、最小値より大きい値で昇順シーケンスを開始する場合、または最大値より小さい値で降順シーケンスを開始する場合に使用する。 昇順シーケンスの場合、デフォルト値はシーケンスの最小値である。 下降シーケンスの場合、デフォルト値はシーケンスの最大値である。

注意:

この値は、上昇循環シーケンスが最大値または最小値に達した後に循環する値とは限りません。

MAXVALUE シーケンスが生成できる最大値を指定します。 この整数値は28桁以下である。 MAXVALUESTART WITH と同じかそれ以上で、かつ MINVALUE よりも大きくなければなりません。

NOMAXVALUE NOMAXVALUE を指定すると、最大値が昇順の場合は 1027、降順の場合は -1 になることを意味します。

MINVALUE シーケンスの最小値を指定します。 この整数値は28桁以下であればよい。 MINVALUESTART以下、WITHMAXVALUE以下でなければなりません。

NOMINVALUE 昇順の場合はNOMINVALUE、降順の場合は-1026が最小値となるように指定します。

CYCLE 最大値または最小値に達した後、シーケンスが値を生成し続けることを示すために、CYCLEを指定します。 上昇型シーケンスは最大値に達した後,最小値を生成します。

NOCYCLE NOCYCLEを指定すると、シーケンスが最大値または最小値に達した後、それ以上値を生成できないことを示します。 これはデフォルトです。

CACHE データベースがより高速なアクセスのために、シーケンスの値をいくつ事前に割り当て、メモリに保持するかを指定します。 この整数値は28桁以下でなければなりません。 このパラメータの最小値は2です。循環するシーケンスの場合、この値は循環する値の数よりも少なくなければなりません。 シーケンス番号の特定のサイクルに収まるより多くの値をキャッシュすることはできません。 したがって、CACHE に許可される最大値は、次の式で決定される値よりも小さくなければなりません:

(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)

システム障害が発生すると、コミットされた DML 文で使用されていない、キャッシュされたすべてのシーケンス値が失われます。

注意:

Oracle Real Application Clusters 環境でシーケンスを使用する場合、パフォーマンスを高めるために CACHE 設定を使用することをお勧めします。

NOCACHE NOCACHE を指定して、シーケンスの値が事前に割り当てられていないことを指定します。 CACHENOCACHE の両方を省略した場合、データベースはデフォルトで20個のシーケンス番号をキャッシュします。

ORDER ORDER を指定すると、シーケンス番号が要求順に生成されることを保証します。 この節は、シーケンス番号をタイムスタンプとして使用する場合に有効です。

ORDER は、Oracle Real Application Clusters を使用している場合にのみ、順序付き生成を保証するために必要です。 排他モードを使用している場合、シーケンス番号は常に順番に生成されます。

NOORDER シーケンス番号を要求順に生成することを保証しない場合は NOORDER を指定します。 これはデフォルトです。

NOORDER

コメントを残す

メールアドレスが公開されることはありません。