ALTER SEQUENCE — change the definition of a sequence generator
語法
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
說明
ALTER SEQUENCE 變更現有序列産生器的參數。ALTER SEQUENCE 指令中未特別設定的任何參數都會保留其先前的設定。
您必須擁有該序列才能使用 ALTER SEQUENCE。要變更序列的綱要,您還必須對新綱要具有 CREATE 權限。要變更擁有者,您還必須是新擁有角色直接或間接成員,並且該角色必須對序列的綱要具有 CREATE 權限。(這些限制強制要求變更擁有者不會透過刪除和重新建立序列來執行任何操作。但是,超級使用者無論如何都可以變更任何序列的所有權。)
參數
name
要變更的序列名稱(選擇性加上綱要)。
IF EXISTS
如果序列不存在,請不要拋出錯誤。 在這種情況下發出 NOTICE。
data_type
可選擇性子句 AS data_type 變更序列的資料型別。有效型別為 smallint,integer 和 bigint。
僅當先前的最小值和最大值是舊資料型別的最小值或最大值時,變更資料型別會自動變更序列的最小值和最大值(換句話說,如果序列是使用 NO MINVALUE 或 NO MAXVALUE,不論明確或隱含)。否則,將保留最小值和最大值,除非新值作為同一指令的一部分發出。如果最小值和最大值不適合新資料型別,則會産生錯誤。
increment
INCREMENT BY 增量子句是可選的。正值將產生遞增序列,負值將產生遞減序列。如果未指定,將保留舊的增量值。
minvalueNO MINVALUE
可選擇性子句 MINVALUE minvalue 決定序列可以産生的最小值。如果指定 NO MINVALUE,則將分別使用預設值 1 和遞增和遞減資料型別的最小值。如果未指定任何選項,則將保持目前的最小值。
maxvalueNO MAXVALUE
可選擇性子句 MAXVALUE maxvalue 決定序列的最大值。如果指定 NO MAXVALUE,則將分別使用資料型別最大值的預設值,以及遞增和遞減序列的預設值 -1。如果未指定任何選項,則將保持目前的最大值。
start
可選擇性子句 START WITH start 變更序列記錄的起始值。這對目前序列值沒有影響;它只是設定未來 ALTER SEQUENCE RESTART 指令將使用的值。