开发指南—Sequence—显示用法—修改Sequence

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文主要介绍如何对Sequence的各种类型进行修改。

PolarDB-X支持对Sequence的各种类型进行如下修改:

  • 修改Simple Sequence的参数:起始值、步长、最大值、循环或非循环。
  • 修改Group Sequence或单元化 Group Sequence的参数:起始值。
  • 不同类型Sequence间的转换(单元化Group Sequence除外)。

注意事项

在对Sequence的类型进行修改时,您需要注意如下事项:

  • Group Sequence和单元化Group Sequence是非连续的。START WITH参数对于它们仅具有指导意义,Group Sequence和单元化Group Sequence不会严格按照该参数作为起始值,但是保证起始值比该参数大。
  • 单元化Group Sequence不支持转换到其它类型或修改单元化相关的参数。
  • 对于Simple Sequence,如果修改Sequence时指定了START WITH,则会立即生效,下次取Sequence值时会从新的START WITH值开始。比如原先Sequene增长到100,这时把START WITH值改成了200,那么下一次获取的Sequence值就从200开始。
  • 修改START WITH的参数值时,需要仔细评估已经产生的Sequence值,以及生成新Sequence值的速度,防止产生冲突。如非必要,请谨慎修改START WITH参数值。

Group Sequence

语法


ALTER SEQUENCE <name> [ CHANGE TO SIMPLE | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]

参数说明

参数 说明
START WITH Sequence的起始值,无默认值,若未指定则忽略该参数,在转换类型时必须指定。
INCREMENT BY 仅在将Group Sequence转换为Simple Sequence时有效,是Simple Sequence每次增长时的增量值(或称为间隔值或步长),若未指定,则默认值为1。
MAXVALUE 仅在将Group Sequence转换为Simple Sequence时有效,是Simple Sequence允许的最大值,若未指定,则默认值为有符号长整型(Signed BIGINT)的最大值,即9223372036854775807。
CYCLE 或 NOCYCLE 仅在将Group Sequence转换为Simple Sequence时有效,两者只能选择其一,代表当Simple Sequence值增长到最大值后,是否允许继续循环(即从START WITH重新开始)使用该Simple Sequence,若未指定,则默认值为NOCYCLE。


说明 当修改的目标类型为TIME时,不支持上述参数。

单元化Group Sequence

语法


ALTER SEQUENCE <name> 
START WITH <numeric value>

参数说明

参数 说明
START WITH 单元化Group Sequence的起始值,无默认值,若未指定则忽略该参数。


说明单元化Group Sequence 不支持转换到其它类型或修改单元化相关的参数。

Time-based Sequence

语法


ALTER SEQUENCE <name>[ CHANGE TO GROUP | SIMPLE ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]

参数说明

参数 说明
START WITH Sequence的起始值,无默认值,若未指定则忽略该参数,在转换类型时必须指定。
INCREMENT BY Simple Sequence每次增长时的增量值(或称为间隔值或步长),若未指定,则默认值为1,将Simple Sequence转换为Group Sequence时该参数无效。
MAXVALUE Simple Sequence允许的最大值,若未指定,则默认值为有符号长整型(Signed BIGINT)的最大值,即9223372036854775807,将Simple Sequence转换为Group Sequence时该参数无效。
CYCLE或NOCYCLE 两者只能选择其一,代表当Simple Sequence值增长到最大值后,是否允许继续循环(即仍从START WITH开始)使用该Simple Sequence,若未指定,则默认值为NOCYCLE,将Simple Sequence转换为Group Sequence时该参数无效。

Simple Sequence

语法


ALTER SEQUENCE <name> [ CHANGE TO GROUP | TIME ]
START WITH <numeric value>
[ INCREMENT BY <numeric value> ]
[ MAXVALUE <numeric value> ]
[ CYCLE | NOCYCLE ]

参数说明

参数 说明
START WITH Sequence的起始值,无默认值,若未指定则忽略该参数,在转换类型时必须指定。
INCREMENT BY Simple Sequence每次增长时的增量值(或称为间隔值或步长),若未指定,则默认值为1,将Simple Sequence转换为Group Sequence时该参数无效。
MAXVALUE Simple Sequence允许的最大值,若未指定,则默认值为有符号长整型(Signed BIGINT)的最大值,即9223372036854775807,将Simple Sequence转换为Group Sequence时该参数无效。
CYCLE 或 NOCYCLE 两者只能选择其一,代表当Simple Sequence值增长到最大值后,是否允许继续循环(即仍从START WITH开始)使用该Simple Sequence,若未指定,则默认值为NOCYCLE,将Simple Sequence转换为Group Sequence时该参数无效。


说明 当修改的目标类型为TIME时,不支持上述参数。

不同类型Sequence间的转换

在对Sequence的不同类型进行转换时,您需要了解如下事项:

  • 通过ALTER SEQUENCECHANGE TO 子句实现。
  • ALTER SEQUENCE如果指定了CHANGE TO子句,则强制必须加上START WITH参数,避免忘记指定起始值而造成取值时得到重复值;若没有CHANGE TO(可选参数),则不强制。
  • 不支持单元化Group Sequence作为源或目标的类型转换。

示例

  • 将Simple Sequence seq4的起始值改为3000,步长改为5,最大值改为1000000,增长到最大值后改为继续循环。语句如下:
mysql> ALTER SEQUENCE seq4 START WITH 3000 INCREMENT BY 5 MAXVALUE 1000000 CYCLE;
  • 将Group Sequence转换为Simple Sequence。
mysql> ALTER SEQUENCE seq1 CHANGE TO SIMPLE START WITH 1000000;
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
5月前
|
图形学
【推荐100个unity插件之2】 DoTween动画插件的安装和使用整合(最全)
【推荐100个unity插件之2】 DoTween动画插件的安装和使用整合(最全)
421 0
|
3月前
|
SQL 关系型数据库 数据库连接
drds配置逻辑库和物理表
【8月更文挑战第6天】
102 0
|
4月前
|
存储 网络协议
计算机基础之MB、Mb、MBps、Mbps
计算机基础之MB、Mb、MBps、Mbps
|
5月前
|
存储 分布式数据库 数据库
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
开发指南—Sequence—显示用法—修改Sequence
本文主要介绍如何对Sequence的各种类型进行修改。
151 0
|
存储 索引
开发指南—Sequence—显示用法—创建Sequence
本文主要介绍如何创建各种类型的Sequence。
107 0
|
6月前
|
关系型数据库 分布式数据库 数据库
drds扩容缩容
drds扩容缩容
131 2
|
6月前
|
canal 缓存 关系型数据库
Springcloud Alibaba使用Canal将Mysql数据实时同步到Redis保证缓存的一致性
canal [kə'næl] ,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。其诞生的背景是早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。
229 0
|
弹性计算 自然语言处理 数据安全/隐私保护
GPU实验室-通过GPU云服务器训练GPT-2
本文介绍如何使用GPU云服务器,使用Megatron-Deepspeed框架训练GPT-2模型并生成文本。
GPU实验室-通过GPU云服务器训练GPT-2
IntelliJ IDEA 设置类注释模板
IntelliJ IDEA 设置类注释模板
170 0