すべてのプロダクト
Search
ドキュメントセンター

PolarDB:CREATE SEQUENCE

最終更新日:Jun 05, 2024

このトピックでは、さまざまなタイプのシーケンスを作成する方法について説明します。

新しいシーケンス

構文
の作成 [新しい] シーケンス <name>
[START WITH <数値>]
[<数値> によってINCREMENT]
[MAXVALUE <数値>]
[CYCLE | NOCYCLE ] 
パラメータ
パラメーター説明
から始める新しいシーケンスの開始値。The start value for the new sequence. このパラメーターを設定しない場合、デフォルトの開始値が使用されます。 デフォルト値は 1 です。
による増加2つの隣接するシーケンス値間の増分。間隔値またはステップサイズとも呼ばれます。 このパラメーターを設定しない場合、デフォルトの開始値が使用されます。 デフォルト値は 1 です。
MAXVALUE新しいシーケンスの最大値。 値は正の整数でなければなりません。 このパラメーターを指定しない場合、デフォルトの最大値が使用されます。 デフォルトの最大値は9223372036854775807で、署名付きBIGINTデータ型です。
CYCLEまたはNOCYCLE選択できるパラメーターは1つだけです。
  • CYCLE: 新しいシーケンスの最大値に達すると、新しいシーケンスで開始値を再び使用できます。
  • NOCYCLE: 新しいシーケンスの最大値に達すると、新しいシーケンスで開始値を再び使用することはできません。 より多くの値が割り当てられた場合、エラーが返されます。 このパラメーターを設定しない場合、NOCYCLEのデフォルト値が使用されます。
説明 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を指定する必要があります。
Parameters
パラメーター説明
から始めるデフォルトでは、グループシーケンスの開始値は、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;