ALTER SEQUENCE

目的

ALTER SEQUENCE文を使用すると、既存の順序の増分値、最小値および最大値、キャッシュされる数および動作を変更できます。この文は、順序番号に影響します。

関連項目:

順序の詳細は、「CREATE SEQUENCE」を参照してください。

前提条件

順序が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、順序に対するALTERオブジェクト権限またはALTER ANY SEQUENCEシステム権限が必要です。

構文

alter_sequence::=

セマンティクス

この文のキーワードおよびパラメータの意味は、順序を作成する場合と同じです。

  • NEXTVALを最初に呼び出す前に、INCREMENT BYの値を変更する場合、いくつかの順序番号がスキップされます。このため、元のSTART WITHの値を保持するには、順序を削除し、これを元のSTART WITHの値および新しいINCREMENT BYの値を使用して再作成する必要があります。

  • 昇順でNEXTVALMINVALUEにリセットする場合は、RESTARTを指定します。降順の場合、RESTARTによってNEXTVALMAXVALUEにリセットされます。

  • 順序を別の番号で再開するには、RESTARTSTART WITH句で指定して、順序を再開する値を設定します。

  • KEEP句またはNOKEEP句を使用して、要求のランタイムとフェイルオーバーとの間で順序を変更すると、その要求に対するアプリケーション・コンティニュイティのための再実行中にNEXTVALの元の値は維持されません。

  • いくつかの妥当性チェックが行われます。たとえば、MAXVALUEの値に現行の順序番号より小さい値は指定できません。

    関連項目:

    順序の作成については、「CREATE SEQUENCE」を参照してください。順序の削除および再作成については、「DROP SEQUENCE」を参照してください。

SCALE

順序の拡張性を有効にするには、SCALEを使用します。SCALEが指定されている場合、数値オフセットが順序の先頭に付加され、生成された値からすべての重複が削除されます。

EXTEND

EXTENDSCALEとともに指定すると、生成される順序値は全長(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;