ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 SQLリファレンス

3.21 CREATE SEQUENCE文(順序定義)

機能

順序定義は、順序を定義します。

順序とは、RDBシステム全体で一意な値を生成する機能です。順序の主な用途は主キー値の作成です。

定義した順序は、アプリケーションのSQL文中に順序を直接指定して使用する方法と、表定義のDEFAULT句に順序を指定して、自動的に取得した値を表に挿入する方法があります。

順序を使用すると、アプリケーションでSQL文実行時に意識することなく主キーを作成することができます。SQL文中に指定した順序の属性は、18桁の整数のNUMERIC型として扱われます。

記述形式

構文の構成

参照項番

権限

一般規則

順序名
  • 作成する順序の名前を指定します。

  • 順序名には、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。

  • 順序名は、スキーマ内で一意の名前であることが必要です。

  • 順序定義がスキーマ定義に含まれる場合、順序名のスキーマ名の修飾を省略した場合は、スキーマ定義で指定したスキーマ名で修飾したとみなされます。また、スキーマ名で修飾する場合は、スキーマ定義で指定したスキーマ名であることが必要です。

増分間隔指定
  • 増分間隔指定は、順序番号の増分間隔を指定します。増分値は正または負の整数です。この値が正の場合は昇順に、負の場合は降順になります。省略した場合は、1ずつ昇順に増加します。

初期値指定
  • 初期値指定“START WITH”は、生成する順序番号の初期値を指定します。この句を指定した場合、順序番号の最小値より大きい値を初期値として昇順を開始することも、最大値よりも小さい値を初期値として降順を開始することもできます。この句を省略した場合、省略値は、昇順の場合は順序番号の最小値になります。降順の場合は順序番号の最大値になります。18桁以内の整数値を指定します。

最大値指定
  • 最大値指定“MAXVALUE”は、順序番号の最大値を指定します。18桁以内の整数値を指定します。最大値は、初期値以上でかつ最小値を超える値である必要があります。この句を省略した場合、省略値には、昇順の場合は(10の18乗)-1、降順の場合は-1が指定されます。

最小値指定
  • 最小値指定“MINVALUE”は、順序番号の最小値を指定します。18桁以内の整数値を指定します。最小値は、初期値以下でかつ最大値未満である必要があります。この句を省略した場合、省略値には、昇順の場合は1、降順の場合は-(10の18乗)+1が指定されます。

繰り返し指定
  • 繰り返し指定“CYCLE”は、順序番号が最大値または最小値に達した場合、順序番号の生成を続行する場合に指定します。昇順の場合は、最大値に達すると最小値が生成されます。降順の場合は、最小値に達すると最大値が生成されます。

割当順序数指定
  • 割当順序数指定“CACHE”は、より高速に順序番号を取得できるように、順序番号を事前にメモリ上に割り当てて保持し、メモリから取得する機能です。CACHEには割当順序数と保持順序数を指定します。

  • 割当順序数は、メモリ上に割り当てておく順序番号の数を指定します。

  • 保持順序数は、新たに順序番号をメモリ上に割り当てる契機を指定します。メモリ上に割り当てた順序番号が取得され、順序番号の残数が保持順序数に達すると、再度、割当順序数までメモリ上に順序番号を追加割り当てします。

  • 割当順序数および保持順序数には、18桁以内の正の整数値を指定します。割当順序数に指定できる最小値は2です。また、保持順序数に指定できる最小値は0です。保持順序数は、割当順序数より小さい値を指定する必要があります。保持順序数を省略した場合、0が指定されたとみなします。

順序保証指定
  • クラスタシステムで順序を使用する場合、順序保証指定“ORDER”を指定すると、クラスタシステム全体で順序番号の生成順番を保証します。

使用例

順序“順序1”を定義します。順序の増分値と初期値は1を指定します。最大値は100を指定します。

CREATE SEQUENCE S1.順序1
    INCREMENT BY 1
    START WITH 1
    MAXVALUE 100