这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

序列函数

序列函数提供了简单多用户安全方法,从序列对象获取连续序列值。

1 - CURRVAL

返回所有节点中的最后一个值,由当前会话中此序列的 NEXTVAL 进行设置。如果 NEXTVAL 自创建后从未在此序列中调用,Vertica 将返回错误。

语法

CURRVAL ('[[database.]schema.]sequence-name')

参数

[database.]schema

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

sequence-name
目标序列

特权

  • 对序列的 SELECT 权限

  • 对序列架构的 USAGE 权限

限制

在以下情况下,不能在 SELECT 语句中调用 CURRVAL:

  • WHERE 子句

  • GROUP BY 子句

  • ORDER BY 子句

  • DISTINCT 子句

  • UNION

  • 子查询

也不能调用 CURRVAL 处理以下项中的序列:

  • UPDATE 或 DELETE 子查询

  • 视图

示例

请参阅创建和使用命名序列

另请参阅

NEXTVAL

2 - NEXTVAL

返回序列中的下一个值。创建序列并使用默认值初始化后,调用 NEXTVAL。接下来,调用 NEXTVAL 增加序列值,进行升序排列,或减少值,进行降序排列。

语法

NEXTVAL ('[[database.]schema.]sequence')

参数

[database.]schema

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

序列
确定目标序列

特权

  • 对序列的 SELECT 权限

  • 对序列架构的 USAGE 权限

限制

在以下情况下,不能在 SELECT 语句中调用 NEXTVAL:

  • WHERE 子句

  • GROUP BY 子句

  • ORDER BY 子句

  • DISTINCT 子句

  • UNION

  • 子查询

也不能调用 NEXTVAL 处理以下项中的序列:

  • UPDATE 或 DELETE 子查询

  • 视图

您可以使用子查询解决部分限制。例如,要将序列与 DISTINCT 使用使用:

=> SELECT t.col1, shift_allocation_seq.NEXTVAL FROM (
     SELECT DISTINCT col1 FROM av_temp1) t;

示例

请参阅创建和使用命名序列

另请参阅

CURRVAL