更改序列生成器的定义。
语法
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;