↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

ALTER SEQUENCE

ALTER SEQUENCE — 更改序列发生器的定义

大纲

ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
  

描述

ALTER SEQUENCE 更改现有序列发生器的参数。在 ALTER SEQUENCE 命令中未明确设置的参数,会保留其原有设置。

参数

name

要更改的序列名称(可以是模式限定的)。

increment

子句INCREMENT BY increment是可选的。正值会创建升序序列,负值会创建降序序列。如果未指定,则保留原有的增量值。

minvalue
NO MINVALUE

可选子句MINVALUE minvalue确定序列可生成的最小值。如果指定了NO MINVALUE,则升序序列和降序序列将分别使用默认值 1 和 -263-1。如果两种选项都未指定,则保留当前最小值。

maxvalue
NO MAXVALUE

可选子句MAXVALUE maxvalue确定序列的最大值。如果指定了NO MAXVALUE,则升序序列和降序序列将分别使用默认值 263-1 和 -1。如果两种选项都未指定,则保留当前最大值。

start

可选子句RESTART WITH start更改序列的当前值。

cache

子句CACHE cache启用预分配序列号并将其存储在内存中,以便更快访问。最小值为 1(一次只能生成一个值,即不缓存)。如果未指定,则保留旧的缓存值。

CYCLE

可选的CYCLE关键字可用于启用序列回绕:当递增或递减序列分别达到 maxvalue或 minvalue时回绕。如果达到限制,下一个生成的数将分别为 minvalue或 maxvalue。

NO CYCLE

如果指定了可选关键字NO CYCLE,则当序列达到其最大值后,任何对 nextval的调用都会返回错误。如果既未指定CYCLE也未指定 NO CYCLE,则保留原有的循环行为。

示例

从 105 开始,重新启动一个名为 serial 的序列:

ALTER SEQUENCE serial RESTART WITH 105;

注解

为避免阻塞从同一序列获取号码的并发事务,ALTER SEQUENCE 从不回滚;更改立即生效且不可逆。

ALTER SEQUENCE 不会立即影响当前后端之外的其他后端中已预分配(缓存)了序列值的 nextval结果。这些后端会在注意到序列参数更改之前用完所有缓存的值。当前后端会立即受到影响。

兼容性

SQL99

ALTER SEQUENCE 是 PostgreSQL 的一种语言扩展。SQL99 中没有 ALTER SEQUENCE 语句。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.