.\" auto-generated by docbook2man-spec $Revision: 1.1 $ .TH "ALTER SEQUENCE" "7" "2003-11-02" "SQL - Language Statements" "SQL Commands" .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 ] .sp .fi .SH "DESCRIPTION 描述" .PP \fBALTER SEQUENCE\fR 命令修改一個現有的序列發生器的參數。 任何沒有明確在 ALTER SEQUENCE 命令裏聲明的參數都將保留原先的設置。 .SH "PARAMETERS 參數" .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 和 -2^63-1。如果沒有聲明任何選項,則沿用當前的最小值。 .TP \fB\fImaxvalue\fB\fR .TP \fBNO MAXVALUE\fR 可選的子句 MAXVALUE \fImaxvalue\fR 決定序列的最大值。如果聲明了 NO MAXVALUE,則使用預設值,對於遞增和遞減的序列分別是 2^63-1 和 -1。如果兩個選項都沒有聲明, 則沿用當前的最大值。 .TP \fB\fIstart\fB\fR 可選的 RESTART WITH \fIstart\fR 子句允許序列可以在任何地方開始。 .TP \fB\fIcache\fB\fR CACHE \fIcache\fR 選項打開序列號預分配並存儲在記憶體緩沖的功能。最小值是 1 (也就是每次只能生成一個數值,沒有緩沖)。 如果沒有聲明,將沿用舊的緩沖值。 .TP \fBCYCLE\fR 可選的鍵字 CYCLE 可以用於允許序列在達到遞增序列的 maxvalue 或者遞減序列的 minvalue的時候重疊使用。 如果達到了極限,那麼生成的下一個數字將分別是 \fIminvalue\fR 或 \fImaxvalue\fR。 .TP \fBNO CYCLE\fR 如果聲明了可選鍵字 NO CYCLE,任何在序列達到其最大極限後對 nextval 的調用都將返回錯誤。 如果既未聲明 CYCLE 也未聲明 NO CYCLE, 那麼將沿用原有的循環行為。 .PP .SH "EXAMPLES 例子" .PP 從 105 開始重新開始一個叫 serial 的序列: .sp .nf ALTER SEQUENCE serial RESTART WITH 105; .sp .fi .SH "NOTES 注意" .PP 為了避免並發的事務從同一個序列獲取數值的時候被阻塞住,ALTER SEQUENCE 操作從來不會回滾; 修改馬上生效並且不能恢復。 .PP \fBALTER SEQUENCE\fR 將不會立即影響後端的 nextval 結果,除了當前的之外, 因為它又已經緩沖了的序列號。它們只有再使用光所有已經緩沖的數值之後才能意識到改變了的序列參數。當前後端將立即被影響。 .SH "COMPATIBILITY 相容性" .SS "SQL99" .PP \fBALTER SEQUENCE\fR 是 PostgreSQL 語言擴展。在 SQL99 裏沒有 ALTER SEQUENCE 語句。 .SH "譯者" .B Postgresql 中文網站 .B 何偉平