説明
このステートメントは、既存のシーケンスの増分、最小値と最大値、キャッシュ数、および動作を変更するために使用します。対応する操作は、後続のシーケンス番号にのみ影響します。
説明
ユーザーは、自身のスキーマ内に属するシーケンス、またはそのシーケンスに対する ALTER オブジェクト権限を持つシーケンスのみを操作できます。
構文
ALTER SEQUENCE [ schema. ] sequence_name
[ INCREMENT BY int_value ]
[ START WITH int_value ]
[ MINVALUE int_value | NOMINVALUE ]
[ MAXVALUE int_value | NOMAXVALUE ]
[ CACHE int_value | NOCACHE ]
[ ORDER | NOORDER ]
[ CYCLE | NOCYCLE ]
[ RESTART ]
パラメータ説明
フィールド |
説明 |
|---|---|
| schema. | シーケンスを含むスキーマを指定します。Schemaを省略した場合、データベースはユーザーの現在のスキーマ内でシーケンスを変更します。 |
| sequence_name | 変更するシーケンス名。 |
| RESTART | シーケンス値をリセットします。昇順の場合は MINVALUE から、降順の場合は MAXVALUE から値の取得を再開します。 |
| START WITH int_value | シーケンスの開始値を変更します。int_value の取り得る範囲は [-(1027-1) ~ (1028-1)] です。 |
| MINVALUE int_value | シーケンスの最小値を変更します。int_value の取り得る範囲は [-(1027-1) ~ (1027-1)] です。 |
| NOMINVALUE | NOMINVALUE に変更すると、昇順時の最小値は1、降順時の最小値は -(1027-1) になります。 |
| MAXVALUE int_value | シーケンスの最大値を変更します。int_value の取り得る範囲は [(-1027+1) ~ (1028-1)] です。新しく指定する MAXVALUE は、現在のシーケンス番号の値より小さくてはなりません。 注意 MINVALUE と MAXVALUE を同時に指定する場合、MINVALUE は MAXVALUE より小さくする必要があります。 MAXVALUE と MINVALUE の差は、INCREMENT BY内の int_value 以上である必要があります。 |
| NOMAXVALUE | NOMAXVALUE に変更すると、昇順時の最大値は (1028-1)、降順時の最大値は -1 になります。 |
| INCREMENT BY int_value | シーケンスの自動インクリメントのステップ数を変更します。int_value は0にすることはできません。正の数を指定すると昇順、負の数を指定すると降順になります。指定しない場合のデフォルト値は1です。 |
| CACHE int_value | メモリ内で事前に割り当てる自動インクリメント値の数を変更します。int_value のデフォルトは20です。CACHE int_value の値は1より大きくする必要があります。CACHE INT_VALUE の値が1の場合、NOCACHE と同じ意味になります。 |
| NOCACHE | シーケンスの値を事前に割り当てないように変更します。CACHE と NOCACHE を両方省略した場合、データベースはデフォルトで20個のシーケンス番号をキャッシュします。 |
| ORDER | シーケンスの値を順序付きで生成するように変更します。 |
| NOORDER | NOORDER に変更すると、シーケンスの値が順序良く生成されることを保証しないことを指定します。 |
| CYCLE | シーケンスの値を循環生成に変更します。つまり、シーケンスが最大値または最小値に達した後も値の生成を続けます。昇順のシーケンスが最大値に達すると、最小値を生成します。降順のシーケンスが最小値に達すると、最大値を生成します。 注意
|
| NOCYCLE | NOCYCLE はデフォルト値です。NOCYCLE に変更すると、シーケンスが最大値または最小値に達した後は、新たな値を生成できなくなることを指定します。 |
例
シーケンス
seq1の最大値を変更し、自動増分でループ生成するよう指定します。-- 事前にシーケンスを作成する必要があります:CREATE SEQUENCE seq1; obclient> ALTER SEQUENCE seq1 MAXVALUE 1024 CYCLE;シーケンス
seq3の最大値と自動増分のステップ数を変更し、CYCLEとORDERを有効にします。また、シーケンスの値が事前に割り当てられていないことを示すためにNOCACHEを指定します。-- 事前にシーケンスを作成する必要があります:CREATE SEQUENCE seq3; obclient> ALTER SEQUENCE seq3 MAXVALUE 1500 INCREMENT BY 5 CYCLE NOCACHE ORDER;シーケンスの値をリセットします。
-- 事前にシーケンスを作成する必要があります:CREATE SEQUENCE seq3; obclient> ALTER SEQUENCE seq3 RESTART;シーケンスの開始値を設定してリセットします。
-- 事前にシーケンスを作成する必要があります:CREATE SEQUENCE seq3; obclient> ALTER SEQUENCE seq3 START WITH 3 RESTART;RESTARTはオプション内の任意の場所に配置できます。以下の例では、シーケンスの値をリセットする2つのSQL文は等価です。-- 事前にシーケンスを作成する必要があります:CREATE SEQUENCE seq3; obclient> ALTER SEQUENCE seq3 START WITH 3 RESTART MINVALUE -100 CYCLE; obclient> ALTER SEQUENCE seq3 RESTART START WITH 3 MINVALUE -100 CYCLE;