更改序列生成器的定义。

语法

ALTER SEQUENCE name [ INCREMENT BY increment ]
  [ MINVALUE minvalue ] [ MAXVALUE maxvalue ]
  [ CACHE cache | NOCACHE ] [ CYCLE ]

说明

ALTER SEQUENCE 可更改现有序列生成器的参数。ALTER SEQUENCE 命令中未特别设置的任何参数都保留其先前的设置。

说明 为了避免阻塞从同一序列获取数字的并发事务,ALTER SEQUENCE 不会回滚;这些更改立即生效,不可逆转。

ALTER SEQUENCE 不会立即影响具有预分配(缓存)序列值的后端(当前后端除外)中的 NEXTVAL 结果。在注意到更改的序列参数之前,它们将使用所有缓存值。当前后端将立即受到影响。

参数

参数 说明
name 要更改的序列的名称(可能是 schema 限定的)。
increment 子句 INCREMENT BY increment 是可选的。正值将生成升序序列,负值将生成降序序列。如果未指定,则将保留旧的增量值。
minvalue 可选子句 MINVALUE minvalue 确定序列可生成的最小值。如果未指定,则保留当前最小值。请注意,关键字 NO MINVALUE 可用于将此行为分别设置为升序和降序序列的默认值 1 和 -263-1,但此术语与 Oracle 数据库不兼容。
maxvalue 可选子句 MAXVALUE maxvalue 确定序列的最大值。如果未指定,则保留当前最大值。请注意,关键字 NO MAXVALUE 可用于将此行为分别设置为升序和降序序列的默认值 263-1 和 -1,但此术语与 Oracle 数据库不兼容。
cache 可选子句 CACHE cache 指定要预先分配多少序列号并存储在内存中以便更快地访问。最小值为 1(一次只能生成一个值,即 NOCACHE)。如果未指定,则保留旧缓存值。
CYCLE CYCLE 选项允许当升序序列或降序序列分别达到 maxvalue 或 minvalue 时,序列回绕。如果达到限制值,则生成的下一个数字将分别为 minvalue 或 maxvalue。如果未指定,则保留旧周期行为。请注意,关键字 NO CYCLE 可用于更改序列,使其不再循环,但此术语与 Oracle 数据库不兼容。

示例

更改序列 serial 的增量值和缓存值。

ALTER SEQUENCE serial INCREMENT BY 2 CACHE 5;