ALTER SEQUENCE
目的
ALTER
SEQUENCE
文を使用すると、既存の順序の増分値、最小値および最大値、キャッシュされる数および動作を変更できます。この文は、順序番号に影響します。
関連項目:
順序の詳細は、「CREATE SEQUENCE」を参照してください。
前提条件
順序が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、順序に対するALTER
オブジェクト権限またはALTER
ANY
SEQUENCE
システム権限が必要です。
構文
alter_sequence::=
セマンティクス
この文のキーワードおよびパラメータの意味は、順序を作成する場合と同じです。
-
NEXTVAL
を最初に呼び出す前に、INCREMENT
BY
の値を変更する場合、いくつかの順序番号がスキップされます。このため、元のSTART
WITH
の値を保持するには、順序を削除し、これを元のSTART
WITH
の値および新しいINCREMENT
BY
の値を使用して再作成する必要があります。 -
昇順で
NEXTVAL
をMINVALUE
にリセットする場合は、RESTART
を指定します。降順の場合、RESTART
によってNEXTVAL
はMAXVALUE
にリセットされます。 -
順序を別の番号で再開するには、
RESTART
をSTART WITH
句で指定して、順序を再開する値を設定します。 -
KEEP
句またはNOKEEP
句を使用して、要求のランタイムとフェイルオーバーとの間で順序を変更すると、その要求に対するアプリケーション・コンティニュイティのための再実行中にNEXTVAL
の元の値は維持されません。 -
いくつかの妥当性チェックが行われます。たとえば、
MAXVALUE
の値に現行の順序番号より小さい値は指定できません。関連項目:
順序の作成については、「CREATE SEQUENCE」を参照してください。順序の削除および再作成については、「DROP SEQUENCE」を参照してください。
SCALE
順序の拡張性を有効にするには、SCALE
を使用します。SCALE
が指定されている場合、数値オフセットが順序の先頭に付加され、生成された値からすべての重複が削除されます。
EXTEND
EXTEND
をSCALE
とともに指定すると、生成される順序値は全長(x+y)
になります。ここで、x
は拡張可能なオフセット(デフォルト値は6)、y
は順序内の数字の最大数(maxvalue/minvalue)
です。
SCALE
を使用する場合は、順序に対してORDER
を同時に使用しないことをお薦めします。
NOEXTEND
NOEXTEND
は、SCALE
句のデフォルト設定です。NOEXTEND
が設定されていると、生成される順序値の幅は最大でも順序内の数字の最大数(maxvalue/minvalue)
です。この設定は、固定幅の列を移入するために順序が使用される、既存のアプリケーションとの統合に役立ちます。
例
順序の変更: 例
次の文は、customers_seq
順序(「順序の作成: 例」で作成)に新しい最大値を設定します。
ALTER SEQUENCE customers_seq MAXVALUE 1500;
次の文は、customers_seq
順序にCYCLE
およびCACHE
オプションを指定します。
ALTER SEQUENCE customers_seq CYCLE CACHE 5;