ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

CREATE SEQUENCE

CREATE SEQUENCE文は、一意な整数を生成し複数のユーザで使用するための、順序番号ジェネレータを新しく作成します。CREATE SEQUENCE文を使用して、順序の初期値、増分値、最大値、最小値、および順序のサイクルを指定できます。

アクセス制御

TimesTenインスタンスでアクセス制御が有効な場合、この文にはDDL権限が必要です。

SQL構文
CREATE SEQUENCE [Owner.]SequenceName

[INCREMENT BY IncrementValue]

[MINVALUE MinimumValue]
[MAXVALUE MaximumValue]]
[CYCLE]
パラメータ

CREATE SEQUENCEには、次のパラメータがあります。

SEQUENCE
[Owner.]SequenceName
順序番号ジェネレータの名前です。
IncrementValue
連続する数値の増分値です。この値は正または負の整数値です。0は指定できません。値が正の場合は昇順になります。負の場合は降順になります。デフォルト値は1です。降順では、範囲はMAXVALUEからMINVALUEへ変化し、昇順ではその逆になります。
MINVALUE
昇順の開始値です。デフォルトの最小値は1です。
MAXVALUE
昇順の最大値、または降順の開始値です。デフォルトの最大値は、(263) -1です。この値は、BIGINTの最大値です。

CYCLE
順序番号ジェネレータが最大値または最小値に達した後、数値の生成を続行するかどうかを指定します。デフォルトでは、順序はサイクルしません。昇順で数値が最大値に達すると、順序は始めに戻り、最小値から値を生成し続けます。降順で最小値に達すると、順序値は最大値に戻ります。CYCLEが指定されていない場合、最大/最小値に達すると順序番号ジェネレータは値の生成を停止し、エラーが返されます。

説明

CURRVALとNEXTVALによるSEQUENCE値の増加

SQL文でSEQUENCE値を参照するには、CURRVALとNEXTVALを使用します。

注意: CYCLE属性が指定された順序はレプリケートできません。
例13.39
CREATE SEQUENCE mysequence INCREMENT BY 1 MINVALUE 2
       MAXVALUE 1000; 
例13.40

この例では、tab1は表内に1行のデータを持ち、CYCLEが使用されているとします。

CREATE SEQUENCE s1 MINVALUE 2 MAXVALUE 4 CYCLE; 
SELECT s1.NEXTVAL FROM tab1; 
/* Returns the value of 2; */ 
SELECT s1.NEXTVAL FROM tab1; 
/* Returns the value of 3; */ 
SELECT s1.NEXTVAL FROM tab1; 
/* Returns the value of 4; */ 
 

最大値に達した後、最小値から昇順でサイクルを開始します。

SELECT s1.NEXTVAL FROM tab1; /* Returns the value of 2; */
例13.41

順序を作成して順序番号を生成するには、次の文を使用します。

CREATE SEQUENCE seq INCREMENT BY 1; 
INSERT INTO student VALUES (seq.NEXTVAL, 'Sally'); 
例13.42

UPDATE SET句で順序を使用するには、次の文を使用します。

UPDATE student SET studentno = seq.NEXTVAL WHERE name = 'Sally'; 
例13.43

問合せで順序を使用するには、次の文を使用します。

SELECT seq.CURRVAL FROM student; 
関連項目

DROP SEQUENCE