IBM PureData System for Analytics, バージョン 7.1

CREATE SEQUENCE

CREATE SEQUENCE 文は、シーケンスの作成に使用します。シーケンスはデータベース・オブジェクトであり、シーケンスを使用することにより、複数のユーザーが固有の整数を生成できます。

特定のシーケンスを作成するには、次の手順に従います。
  • データ型の最大値に向けて増加していく昇順シーケンスを作成するには、MAXVALUE を省略するか、もしくは NO MAXVALUE を指定します。最小値 1 に向けて減少していく降順シーケンスを作成するには、MINVALUE を省略するか、または NO MINVALUE を指定します。
  • 予め定義した昇順シーケンスの制限で停止するシーケンスを作成するには、MAXVALUE パラメーターの値を指定します。降順シーケンスの場合には、MINVALUE の値を指定します。また、NO CYCLE を指定することもできます。シーケンスが制限に達した後にシーケンス番号を生成しようとすると、エラーが発生します。
  • 制限に達した後に再開するシーケンスを作成するには、CYCLE を指定します。

シーケンスの作成後、NEXT VALUE FOR 文という SQL 文で値を取得できます (この文は、シーケンスを増分し、新しい値を返します)。

システムは、トランザクションがコミットするかロールバックするかには無関係に、シーケンス番号を生成します。2 人のユーザーが同じシーケンスを同時に増分した場合、各ユーザーが取得するシーケンス番号は、もう一方のユーザーがシーケンス番号を生成しているために、ギャップが生じる可能性があります。ただし、別のユーザーが生成したシーケンス番号を取得することはありません。

構文

シーケンスを作成する場合の構文
CREATE SEQUENCE <seq_name>
[ AS <datatype> ] 
[ START WITH <start_value> ] 
[ INCREMENT BY <increment> ] 
[ NO MINVALUE | MINVALUE <minimum_value> ] 
[ NO MAXVALUE | MAXVALUE <maximum_value> ] 
[ NO CYCLE | CYCLE ];

入力

CREATE SEQUENCE コマンドの入力は以下のとおりです。
表 1. CREATE SEQUENCE の入力
入力 説明
<seq_name> シーケンスの名前。
<datatype> データ型。任意の exact integer 型 (byteint、smallint、integer、bigint など) を指定することが可能です。このオプションを指定しない場合、デフォルトのデータ型は bigint となります。 データ型とその種類については、表 1 を参照してください。
START WITH 開始値。この節は、シーケンスの最小値より大きな値から昇順シーケンスを開始する場合や、シーケンスの最大値より小さな値から降順シーケンスを開始する場合に指定します。

昇順シーケンスのデフォルト値は、シーケンスの最小値です。降順シーケンスのデフォルト値は、シーケンスの最大値です。この整数値は、シーケンス・データ型の minvaluemaxvalue の範囲内である必要があります。

INCREMENT BY 増分値。この整数値には任意の正の整数や負の整数を指定できますが、ゼロは指定できません。この値の大きさは、minvaluemaxvalue の差より小さくなければなりません。

正の値を指定する場合は昇順シーケンスを、負の値を指定する場合は降順シーケンスを、それぞれ作成します。このオプションを指定しない場合、デフォルトは 1 となります。

NO MINVALUE | MINVALUE シーケンスの最小値。デフォルトは NO MINVALUE です。これは、最小値 1 を指定するのと同等です。

MINVALUE は、START WITH 以下で、MAXVALUE より小さくなければなりません。

NO MAXVALUE | MAXVALUE シーケンスが持つことができる最大値。デフォルトは NO MAXVALUE、すなわち指定されたデータ型の最大値となります。

MAXVALUE は、START WITH 以上で、MINVALUE より大きくなければなりません。データ型の範囲については、表 1 を参照してください。

NO CYCLE | CYCLE シーケンスが最大値 (昇順シーケンスの場合) または最小値 (降順シーケンスの場合) に到達した後に、値の生成を継続するかどうか。デフォルトは NO CYCLE、すなわちシーケンスは最終値に到達した時点で停止するようになっています。

CYCLE を指定した場合、昇順シーケンスが最大値に達すると次は最小値が使用され、降順シーケンスが最小値に達すると、次は最大値が使用されます。

出力

CREATE SEQUENCE コマンドは以下の出力を生成します。
表 2. CREATE SEQUENCE の出力
出力 説明
CREATE SEQUENCE コマンドは正常に実行されました。

特権

admin ユーザーまたはデータベースかスキーマの所有者であるか、あるいはアカウントが Create Sequence 管理者権限を持っている必要があります。

使用方法

以下に使用例を示します。
  • 開始値が 11、増分が 2、最小値が 1、最大値が 100 のシーケンスを整数として作成します。
       CREATE SEQUENCE sequence1 As integer START WITH 11 INCREMENT BY 2
    MINVALUE 1 MAXVALUE 100 NO CYCLE;


フィードバック | Copyright IBM Corporation 2014 | 最終更新日: 2014-02-28