.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "ALTER SEQUENCE" "" "2007-05-04" "SQL - 言語" "SQLコマンド"
.SH NAME
ALTER SEQUENCE \- シーケンスジェネレータの定義を変更する

.SH SYNOPSIS
.sp
.nf
ALTER SEQUENCE \fIname\fR [ INCREMENT [ BY ] \fIincrement\fR ]
    [ MINVALUE \fIminvalue\fR | NO MINVALUE ] [ MAXVALUE \fImaxvalue\fR | NO MAXVALUE ]
    [ RESTART [ WITH ] \fIstart\fR ] [ CACHE \fIcache\fR ] [ [ NO ] CYCLE ]
    [ OWNED BY { \fItable\fR.\fIcolumn\fR | NONE } ]
ALTER SEQUENCE \fIname\fR SET SCHEMA \fInew_schema\fR
  
.sp
.fi
.SH "説明"
.PP
\fBALTER SEQUENCE\fRは、既存のシーケンスジェネレータのパラメータを変更します。
\fBALTER SEQUENCE\fRで指定されなかったパラメータについては、以前の設定が保持されます。
.PP
\fBALTER SEQUENCE\fRを使用するには、シーケンスの所有者でなければなりません。
シーケンスのスキーマを変更するには、新しいスキーマにおけるCREATE権限も持たなければなりません。
.SH "パラメータ"
.PP
.TP
\fB\fIname\fB\fR
変更するシーケンスの名前です（スキーマ修飾名も可）。
.TP
\fB\fIincrement\fB\fR
INCREMENT BY \fIincrement\fR句は省略可能です。
正の値が指定された時は昇順のシーケンス、負の値が指定された時は降順のシーケンスを作成します。
指定がない場合、以前の増分値が保持されます。
.TP
\fB\fIminvalue\fB\fR
.TP
\fBNO MINVALUE\fR
MINVALUE \fIminvalue\fRはシーケンスジェネレータが生成する最小値を決定します。
NO MINVALUEが指定された場合、昇順の時は1、降順の時は-(263-1)がデフォルトになります。
どちらのオプションも指定されていなければ、現在の最小値が保持されます。
.TP
\fB\fImaxvalue\fB\fR
.TP
\fBNO MAXVALUE\fR
MAXVALUE \fImaxvalue\fRはシーケンスが生成する最大値を決定します。
NO MAXVALUEが指定された場合、昇順の時は263-1、降順の時は-1がデフォルトになります。
どちらのオプションも指定されていなければ、現在の最大値が保持されます。
.TP
\fB\fIstart\fB\fR
RESTART WITH \fIstart\fR句は、シーケンスの現在値を変更します。この句は省略可能です。
.TP
\fB\fIcache\fB\fR
CACHE \fIcache\fR句を使用すると、アクセスを高速化するために、シーケンス番号を事前に割り当て、メモリに保存しておくことができます。
最小値は1です（一度に生成する値が1つだけなので、キャッシュがない状態になります）。
指定がなければ、以前のキャッシュ値が保持されます。
.TP
\fBCYCLE\fR
CYCLEキーワードを使用すると、シーケンスが限界値（昇順の場合は\fImaxvalue\fR、降順の場合は\fIminvalue\fR）に達した時、そのシーケンスを周回させることができます。このキーワードは省略可能です。
限界値に達した時、次に生成される番号は、昇順の場合は\fIminvalue\fR、降順の場合は\fImaxvalue\fRになります。
.TP
\fBNO CYCLE\fR
NO CYCLEキーワードが指定されると、シーケンスの限界値に達した後の\fBnextval\fR呼び出しは全てエラーとなります。このキーワードは省略可能です。
CYCLEもNO CYCLEも指定されていない場合は、以前の周回動作が保持されます。
.TP
\fBOWNED BY \fItable\fB.\fIcolumn\fB\fR
.TP
\fBOWNED BY NONE\fR
OWNED BYオプションにより、シーケンスは指定されたテーブル列に関連付けされ、その列（やテーブル全体）が削除されると、自動的にシーケンスも同様に削除されるようになります。
指定があると、以前に指定されたシーケンスの関連は、指定された関連に置き換えられます。
指定するテーブルは、シーケンスと同一所有者でなければならず、また、同一のスキーマ内に存在しなければなりません。
OWNED BY NONEを指定することで、既存の関連は削除され、シーケンスは``独立''したものになります。
.TP
\fB\fInew_schema\fB\fR
シーケンスの新しいスキーマです。
.PP
.SH "例"
.PP
serialシーケンスを105から再開します。
.sp
.nf
ALTER SEQUENCE serial RESTART WITH 105;
.sp
.fi
.SH "注釈"
.PP
同じシーケンスから番号を取得するトランザクションの同時実行ブロックを防ぐために、シーケンス生成パラメータに関する\fBALTER SEQUENCE\fRの操作はロールバックできません。
\fBALTER SEQUENCE\fRによる変更は即座に反映され、元に戻すことはできません。
しかし、OWNED BYおよびSET SCHEMA句は通常のカタログ更新であり、ロールバックすることができます。
.PP
\fBALTER SEQUENCE\fRは、コマンドを実行したバックエンド以外のバックエンドにおける\fBnextval\fRに対しては、すぐには効力を発揮しません。これらのバックエンドは事前に割り当てられた（キャッシュされた）値を持っており、この値を全て使い果たした後に、変更されたシーケンス生成パラメータを検知します。
コマンドを実行したバックエンドには、即座に変更が反映されます。
.PP
\fBALTER TABLE\fRの一部の構文はシーケンスにも使用することができます。
例えば、シーケンス名の変更は\fBALTER TABLE RENAME\fRを使用して可能です。
.SH "互換性"
.PP
\fBALTER SEQUENCE\fRは、SET SCHEMA構文を除いて、標準SQLに従っています。
OWNED BYおよびSET SCHEMAはPostgreSQLの拡張です。
.SH "関連項目"
CREATE SEQUENCE [\fBcreate_sequence\fR(l)], DROP SEQUENCE [\fBdrop_sequence\fR(l)]
