GBASE南大通用GBase 8s数据库CREATE SEQUENCE 语句 的用法

本文介绍了GBase8sSQL中的序列(序列生成器)概念,包括CREATESEQUENCE语句的用法,NEXTVAL和CURRVAL表达式的应用场景,以及序列在并发控制、主键生成和命名规则方面的特性。特别提到了序列的可配置选项和IFNOTEXISTS关键字的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列(有时称为系列生成器 或 序列对象)返回一系列单调升序或单调降序的唯一整数,一次返回 一个。 CREATE SEQUENCE 语句定义新的序列对象,声明其标识符并在 syssequences 系统目录 表中注册此对象。 

GBase 8s SQL 指南:语法 南大通用数据技术股份有限公司 260 序列已授权的用户可以通过在 DML 语句中包含 sequence.NEXTVAL 表达式来请求新的值。 sequence.CURRVAL 表达式返回指定 sequence 的当前值。NEXTVAL 和 CURRVAL 表达式只 在 SELECT 、DELETE 、INSERT 和 UPDATE 语句中有效;如果尝试在其它上下文中调用内置 的 NEXTVAL 或 CURRVAL 函数, GBase 8s 将返回一个错误。

生成的值在逻辑上类似 BIGSERIAL 或 SERIAL8 数据类型,但在该序列内是唯一的。因为数据库 服务器生成这些值,所以多个序列能比一个序列列支持更高级别的并发性。这些值独立于事务;即 使生成值的事务失败,生成的值也不能回滚。 

可以使用序列自动生成主键值(为许多表使用一个序列),或者每个表都可以有子句的序列。 CREATE SEQUENCE 可以指定序列的以下特征:

  ⚫ 初始值 

  ⚫ 值间增量的大小和符号

  ⚫ 最大和最小值

  ⚫ 序列在达到其限制后是否回收值 

  ⚫ 在内存中预先分配了多少值用于快速存取 数据库可以同时支持多个序列,但是在表、临时表、视图、同义词和序列的名称中当前数据库内序 列的名称(或在兼容 ANSI 的数据库中,owner.sequence 组合)必须是唯一的。 

如果包含对立选项(如同时指定 MINVALUE 和 NOMINVALUE 选项或同时指定 CACHE 和 NOCACHE),则会发生错误。

如果您包含可选 IF NOT EXISTS 关键字,则当指定名称的序列对象已经在当前数据库中注册时, 或者指定的名称是当前数据库中的表、视图或同义词的标识符时,数据库服务器不采取操作(而非 向应用程序发送异常)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值