Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
複数のテーブル間でユニークな値となるプライマリキー値、およびテーブルのデフォルト値を生成するために使用できるシーケンスを作成します。
CREATE [ OR REPLACE ] SEQUENCE [ owner.] sequence-name [ INCREMENT BY signed-integer ] [ START WITH signed-integer ] [ MINVALUE signed-integer | NO MINVALUE ] [ MAXVALUE signed-integer | NO MAXVALUE ] [ CACHE integer | NO CACHE ] [ CYCLE | NO CYCLE ]
OR REPLACE 句 OR REPLACE を指定すると、新しいシーケンスが作成されるか、同じ名前の既存のシーケンスが置き換えられます。OR REPLACE 句を使用しなかった場合、現在のユーザに対してすでに存在するシーケンスの名前を指定すると、エラーが返されます。
INCREMENT BY 句 最後に割り当てられた値から次のシーケンス値までの増分量を定義します。デフォルトは 1 です。負の値を指定すると、降順のシーケンスが生成されます。INCREMENT BY 値が 0 の場合は、エラーが返されます。
START WITH 句 シーケンスの開始値を定義します。START WITH 句に値を指定しない場合、昇順シーケンスでは MINVALUE が使用され、降順シーケンスでは MAXVALUE が使用されます。START WITH の値が MINVALUE または MAXVALUE で指定された範囲外の場合は、エラーが返されます。
MINVALUE 句 シーケンスで生成される最小値を定義します。デフォルトは 1 です。MINVALUE が (2^63-1) より大きいか -(2^63-1) より小さい場合は、エラーが返されます。また、MINVALUE が MAXVALUE より大きい場合も、エラーが返されます。
MAXVALUE 句 シーケンスで生成される最大値を定義します。デフォルトは -1 です。MAXVALUE が 2^63-1 より大きいか -(2^63-1) より小さい場合は、エラーが返されます。
CACHE 句 より速くアクセスできるようにメモリに保持される、事前に割り付けられたシーケンス値の数を指定します。キャッシュが不足すると、シーケンスキャッシュが再移植され、対応するエントリがトランザクションログに書き込まれます。キャッシュの現在の値は、チェックポイントの時点で ISYSSEQUENCE システムテーブルに転送されます。デフォルトは 100 です。
CYCLE 句 最大値または最小値に達した後に、値の生成を継続するかどうかを指定します。
デフォルトは NO CYCLE です。この場合、最大値または最小値に達すると、エラーが返されます。
シーケンスは、数値の自動生成が可能なデータベースオブジェクトです。シーケンスは特定またはユニークなテーブルカラムにバインドされず、シーケンスが適用されるテーブルカラム経由でのみアクセスできます。
シーケンスでは、次のいずれかの方法で値を生成できます。
CYCLE 句を使用して、シーケンスで値を使い果たした場合の動作を制御します。
シーケンスが増加して MAXVALUE を上回り、CYCLE が指定されている場合には、次のシーケンス値として MINVALUE が使用されます。シーケンスが減少して MINVALUE を下回り、CYCLE が指定されている場合には、次のシーケンス値として MAXVALUE が使用されます。CYCLE が指定されていない場合は、エラーが返されます。
ビュー定義またはマテリアライズドビュー定義では、シーケンス値を使用できません。
シーケンスを作成するには、CREATE ANY SEQUENCE または CREATE ANY OBJECT システム権限が必要です。
なし
SQL/2008 シーケンスは、SQL/2008 言語機能 T176 を構成します。SQL Anywhere では、シーケンスのデータ型にオプションの指定はできません。これを行うには、シーケンスで CAST を使用します。
また、以下はベンダー拡張です。
次の例は、4 で開始して 2 ずつ増加し、循環せず、15 個の値を一度にキャッシュする、Test という名前のシーケンスを作成します。
CREATE SEQUENCE Test START WITH 4 INCREMENT BY 2 NO MAXVALUE NO CYCLE CACHE 15;