ALTER SEQUENCE

Oracle

ALTER SEQUENCEは、シーケンス(順序)を変更するSQL文です。順序の初期値、増分値、最大値、最小値、および順序のサイクルを変更できます。

ALTER SEQUENCE sequence [START WITH start] [INCREMENT BY inc] [MINVALUE min] [MAXVALUE max] [CYCLE]
  [RESTART]
sequence
変更する順序の名前を指定する。
START WITH
順序の開始値を指定する。開始値の指定を省略した場合、順序の値は 1 から始まる。あくまでも開始値を変更するだけで、現在の値は変わらない。
SQL> ALTER SEQUENCE example START WITH 2;

SQL> SELECT example.NEXTVAL FROM DUAL;

NEXTVAL
-------
      2

SQL> SELECT example.NEXTVAL FROM DUAL;

NEXTVAL
-------
      3
INCREMENT BY
シーケンスの増分値を指定する。
SQL> ALTER SEQUENCE example INCREMENT BY 2;

SQL> SELECT example.NEXTVAL FROM DUAL;

NEXTVAL
-------
      1

SQL> SELECT example.NEXTVAL FROM DUAL;

NEXTVAL
-------
      3
MINVALUE min
順序の最小値を指定する。
SQL> ALTER SEQUENCE example MINVALUE 0;
MAXVALUE max
順序の最大値を指定する。
SQL> ALTER SEQUENCE example MAXVALUE 999;
CYCLE
最大値に達したら最小値に戻ります。CYCLE節の指定を省略した場合は、最大値に達すると順序番号ジェネレータは値の生成を停止し、エラーが返される。
SQL> ALTER SEQUENCE example CYCLE;
RESTART
シーケンスの現在の値をリセットする。リセットされた順序は、再び初期値から値を生成する。
SQL> ALTER SEQUENCE example RESTART;

PostgreSQL

シーケンス・ジェネレータの定義を変更する。

ALTER SEQUENCE [ IF EXISTS ] name
    [ AS data_type ]
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ]
    [ RESTART [ [ WITH ] restart ] ]
    [ CACHE cache ] [ [ NO ] CYCLE ]
    [ OWNED BY { table_name.column_name | NONE } ]
ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name
ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

SQL Server

既存のシーケンス・オブジェクトの引数を変更する。

ALTER SEQUENCE [schema_name. ] sequence_name  
    [ RESTART [ WITH constant ] ]  
    [ INCREMENT BY constant ]  
    [ { MINVALUE constant } | { NO MINVALUE } ]  
    [ { MAXVALUE constant } | { NO MAXVALUE } ]  
    [ CYCLE | { NO CYCLE } ]  
    [ { CACHE [ constant ] } | { NO CACHE } ]  
    [ ; ]

関連SQL