ALTER SEQUENCE

通过以下两种方式更改命名序列

  • 设置控制序列行为的参数,例如,序列起始值以及其最小值和最大值的范围。这些更改仅在您启动新的数据库会话时生效。

  • 设置序列名称、架构或所有权。这些更改会立即生效。

语法

更改序列行为:

ALTER SEQUENCE [[database.]schema.]sequence
    [ INCREMENT [ BY ] integer ]
    [ MINVALUE integer | NO MINVALUE ]
    [ MAXVALUE integer | NO MAXVALUE ]
    [ RESTART [ WITH ] integer ]
    [ CACHE integer | NO CACHE ]
    [ CYCLE | NO CYCLE ]

更改序列名称、架构或所有权:

ALTER SEQUENCE [schema.]sequence-name {
    RENAME TO seq-name
    | SET SCHEMA schema-name]
    | OWNER TO owner-name
}

参数

架构

数据库和架构。默认架构为 public。如果指定一个数据库,它必须是当前数据库。

如果未指定架构,系统将在默认架构中创建表。

序列
要更改的序列的名称。
INCREMENT [BY] integer

一个正整数或负整数,指定每次调用 NEXTVAL 时序列的增减数量,默认设置为 1。

MINVALUE integer
NO MINVALUE (默认值)
修改序列可以生成的最小值。如果更改了此值且当前值超出了范围,增量大于零时当前值将更改为最小值,增量小于零时当前值将更改为最大值。
MAXVALUE integer
NO MAXVALUE (默认值)
修改序列的最大值。如果更改了此值且当前值超出了范围,增量大于零时当前值将更改为最小值,增量小于零时当前值将更改为最大值。
RESTART [WITH] integer
将序列的当前值更改为 integer。下一次调用 NEXTVAL 将返回 integer
CACHEinteger
NO CACHE (默认值)
指定预先分配和存储在内存中的序列号数量,以提高访问速度。Vertica 为每个会话设置缓存,并将其分布到所有节点。默认情况下,序列缓存设置为 250,000。

有关详细信息,请参阅分发命名序列

CYCLE
NO CYCLE (默认值)
指定序列是否可以在达到其最小值或最大值时回绕:
  • CYCLE:序列按如下方式进行回绕:

    • 当递增序列达到其上限时,会被重置为其最小值。

    • 当递减序列达到其下限时,会被重置为其最大值。

  • NO CYCLE (默认值):在序列达到其最大值或最小值后,调用 NEXTVAL 会返回错误。

RENAME TO seq‑name
重命名当前架构中的序列,其中 seq‑name 符合标识符中描述的约定。 同一架构中的序列、表、投影、视图和模型中也必须是唯一的。
SET SCHEMA schema‑name
将序列移至架构 schema-name
OWNER TO owner‑name
将当前序列所有者重新分配给指定所有者。

特权

非超级用户:对架构的 USAGE 权限,为以下之一:

  • 序列所有者

  • 对序列的 ALTER 权限

对于某些操作,非超级用户必须具备以下架构权限:

示例

请参阅更改序列

另请参阅

CREATE SEQUENCE