pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
ALTER SEQUENCE — 更改序列发生器的定义
ALTER SEQUENCEname[ INCREMENT [ BY ]increment] [ MINVALUEminvalue| NO MINVALUE ] [ MAXVALUEmaxvalue| NO MAXVALUE ] [ RESTART [ WITH ]start] [ CACHEcache] [ [ NO ] CYCLE ]
ALTER SEQUENCE 更改现有序列发生器的参数。在 ALTER SEQUENCE 命令中未明确设置的参数,会保留其原有设置。
name要更改的序列名称(可以是模式限定的)。
increment子句INCREMENT BY 是可选的。正值会创建升序序列, 负值会创建降序序列。如果未指定,则保留原有的增量值。increment
minvalueNO MINVALUE可选子句MINVALUE 确定序列可生成的最小值。 如果指定了minvalueNO MINVALUE,则升序序列和降序序列将分别使用默认值 1 和 -263-1。 如果两种选项都未指定,则保留当前最小值。
maxvalueNO MAXVALUE可选子句MAXVALUE 确定序列的最大值。 如果指定了maxvalueNO MAXVALUE,则升序序列和降序序列将分别使用默认值 263-1 和 -1。 如果两种选项都未指定,则保留当前最大值。
start可选子句RESTART WITH 更改序列的当前值。start
cache子句CACHE 启用预分配序列号并将其存储在内存中,以便更快访问。 最小值为 1(一次只能生成一个值,即不缓存)。如果未指定,则保留旧的缓存值。cache
可选的CYCLE关键字可用于启用序列回绕:当递增或递减序列分别达到 maxvalue或 minvalue时回绕。如果达到限制, 下一个生成的数将分别为 minvalue或 maxvalue。
如果指定了可选关键字NO CYCLE,则当序列达到其最大值后,任何对 nextval的调用都会返回错误。如果既未指定CYCLE也未指定 NO CYCLE,则保留原有的循环行为。
从 105 开始,重新启动一个名为 serial 的序列:
ALTER SEQUENCE serial RESTART WITH 105;
为避免阻塞从同一序列获取号码的并发事务,ALTER SEQUENCE 从不回滚; 更改立即生效且不可逆。
ALTER SEQUENCE 不会立即影响当前后端之外的其他后端中已预分配(缓存)了序列值的 nextval结果。这些后端会在注意到序列参数更改之前用完所有缓存的值。当前后端会立即受到影响。
ALTER SEQUENCE 是 PostgreSQL 的一种语言扩展。 SQL99 中没有 ALTER SEQUENCE 语句。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。