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

简介: 本文主要介绍如何对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;
相关文章
|
存储 SQL 分布式计算
Parquet与ORC高性能列式存储
Parquet与ORC高性能列式存储
1137 0
Parquet与ORC高性能列式存储
|
9月前
|
存储 安全 测试技术
云计算应该掌握的八种用途
云计算通过互联网提供按需付费的云服务,广泛应用于软件开发、社交网络、大数据分析、数据备份、文件存储、灾难恢复、云端通信和业务流程管理等领域。它帮助企业降低硬件成本、提高开发效率、保障数据安全、增强业务连续性,并支持多样化应用场景,成为数字化转型的核心引擎。
1986 2
|
JSON API 开发者
1688API商品详情接口如何获取
获取 1688 API 商品详情接口的步骤包括:1. 注册开发者账号;2. 了解接口规范和政策;3. 申请 API 权限;4. 获取 API 密钥;5. 实现接口调用(选择开发语言、发送 HTTP 请求);6. 处理响应数据。通过这些步骤,可以顺利调用 1688 的商品详情 API。
|
人工智能 编解码 自然语言处理
AI文生图模型DALL·E 3
8月更文挑战第15天
|
机器学习/深度学习 人工智能 算法
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
【机器学习】探究Q-Learning通过学习最优策略来解决AI序列决策问题
673 1
|
存储 人工智能 算法
程序与技术分享:7z命令行压缩解压详解
程序与技术分享:7z命令行压缩解压详解
|
存储 边缘计算 Kubernetes
大规模 IoT 边缘容器集群管理的几种架构 -6- 个人体验及推荐
大规模 IoT 边缘容器集群管理的几种架构 -6- 个人体验及推荐
|
缓存 应用服务中间件 nginx
|
存储 BI 数据处理
聊一聊数据应用中的数据集市
今天我们聊聊什么是数据集市(DM)?什么时候需要数据集市?
聊一聊数据应用中的数据集市