このトピックでは、さまざまなタイプのシーケンスを作成する方法について説明します。
新しいシーケンス
構文の作成 [新しい] シーケンス <name>
[START WITH <数値>]
[<数値> によってINCREMENT]
[MAXVALUE <数値>]
[CYCLE | NOCYCLE ]
のパラメータパラメーター | 説明 |
から始める | 新しいシーケンスの開始値。The start value for the new sequence. このパラメーターを設定しない場合、デフォルトの開始値が使用されます。 デフォルト値は 1 です。 |
による増加 | 2つの隣接するシーケンス値間の増分。間隔値またはステップサイズとも呼ばれます。 このパラメーターを設定しない場合、デフォルトの開始値が使用されます。 デフォルト値は 1 です。 |
MAXVALUE | 新しいシーケンスの最大値。 値は正の整数でなければなりません。 このパラメーターを指定しない場合、デフォルトの最大値が使用されます。 デフォルトの最大値は9223372036854775807で、署名付きBIGINTデータ型です。 |
CYCLEまたはNOCYCLE | 選択できるパラメーターは1つだけです。
|
説明 AUTOモードのデータベースでシーケンスを作成するときにシーケンスタイプを指定しないと、デフォルトで新しいシーケンスが作成されます。 DRDSモードのデータベースに新しいシーケンスを作成することはできません。
開始値を1000する新しいシーケンスを作成します。
新しいシーケンスを作成するnewseq 1000;
開始値1、ステップサイズ2、最大値100、開始値を再度使用できない新しいシーケンスを作成します。
CREATE NEW SEQUENCE newseq2 START WITH 1 INCREMENT BY 2 MAXVALUE 100 CYCLE;
グループシーケンス
構文CREATE [グループ] SEQUENCE <name>
[START WITH <数値>]
[ユニット数 <数値> インデックス <数値> ]
説明 DRDSモードのデータベースでシーケンスを作成するときにシーケンスタイプを指定しないと、デフォルトでグループシーケンスが作成されます。 AUTOモードのデータベースにグループシーケンスを作成する場合は、シーケンスタイプとしてgroupを指定する必要があります。
パラメーター | 説明 |
から始める | デフォルトでは、グループシーケンスの開始値は、UNIT COUNTパラメータの値とINDEXパラメータの値に基づいて決定されます。 UNIT COUNTパラメーターとINDEXパラメーターを設定しない場合、デフォルトの開始値100001が使用されます。 |
ユニットカウント | グループシーケンス内のユニット数。 デフォルト値は 1 です。 |
INDEX | ユニットシーケンスのユニットインデックス。 有効な値の範囲は、0から単位数から1を引いた値までです。 デフォルト値:0 |
説明
- グループシーケンスは、非連続値を含む。 START WITHパラメーターの値は、参照用にのみ指定されます。 グループシーケンスの実際の開始値は、ビジネスシナリオのstart WITHパラメーターの値よりも大きい場合があります。
- 複数のユニットを含むグループシーケンスは、別のタイプのシーケンスに変換することはできません。
- グループシーケンスの作成後、UNIT COUNTパラメーターおよびINDEXパラメーターの値は変更できません。
1つのユニットのみを含むグループシーケンスを作成します。
CREATE GROUP SEQUENCE groupseq;
3つのインスタンスまたはデータベースでユニットシーケンスを作成し、グローバルグループシーケンスを生成します。 ユニットシーケンスの定義で指定されているシーケンス名とユニットの数は同じであり、各ユニットシーケンスのインデックスは一意です。
- インスタンス1またはデータベース1にユニットシーケンスを作成します。
Create GROUP sequence ugroupseq unit COUNT 3 INDEX 0;
- インスタンス2またはデータベース2にユニットシーケンスを作成します。
Create GROUP sequence ugroupseq unit COUNT 3 INDEX 1;
- インスタンス3またはデータベース3にユニットシーケンスを作成します。
Create GROUP sequence ugroupseq unit COUNT 3 INDEX 2;
タイムシーケンス
構文CREATE TIMEシーケンス <name>
重要 時系列の値を格納するために使用される列は、BIGINTデータ型である必要があります。
タイムシーケンスを作成します。
作成タイムシーケンスseq3;