开发指南—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;
相关文章
开发指南—Sequence—显示用法—修改Sequence
本文主要介绍如何对Sequence的各种类型进行修改。
118 0
|
存储 索引
开发指南—Sequence—显示用法—创建Sequence
本文主要介绍如何创建各种类型的Sequence。
|
5月前
|
消息中间件 缓存 监控
阿里P8整理的《百亿级并发系统设计》实战教程,实在是太香了
说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥有高并发经验者优先。
|
机器学习/深度学习 并行计算 算法
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致
282 0
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致
|
缓存 弹性计算 前端开发
如何做好“防御性编码”?
类似于“防御性驾驶”对驾驶安全的重要性,防御性编码目的概括起来就一条:将代码质量问题消灭于萌芽。要做到“防御性编码”,就要求我们充分认识到代码质量的严肃性,也就是“一旦你觉得这个地方可能出问题,那基本它就会(在某个时刻)出问题”。当然,实际情况比这个更严峻。由于大家的编码经验和风格差异,导致大家的意识边界是大小不一的,那些潜伏在意识边界之外的“危险”更加隐蔽和不可琢磨。在意识层面上,我们当然要摒弃“想当然”和“差不多”的思想,严肃评估这些问题发生的可能性,认真对待这些风险。但如若话题止步于此,那其实还是缺乏执行层面的指导意义的,激不起半点“涟漪”的。这个文章目的也更多是关注到“实操层面”的引导
如何做好“防御性编码”?
|
1天前
|
存储 关系型数据库 MySQL
数据管理的艺术:PolarDB开源版详评与实战部署策略(一)
PolarDB-X是阿里巴巴自研的高性能云原生分布式数据库,基于共享存储的Shared-nothing架构,支持MySQL生态,具备金融级高可用、分布式水平扩展、HTAP混合负载等能力。它通过CN(计算节点)和DN(存储节点)实现计算与存储分离,保证数据强一致性,并支持全局二级索引和多主多写。PolarDB-X开源版提供更高程度的定制化和控制权,适合追求技术自主性和成本优化的开发者。部署方式包括RPM包、PXD工具和Kubernetes,其中PXD工具提供了一键部署的便利性。
46714 11
|
7天前
|
存储 NoSQL 数据库
为什么要用 Tair 来服务低延时场景 - 从购物车升级说起
“购物车升级”是今年双十一期间提升用户体验的关键项目,展示了大淘宝技术团队致力于通过技术突破消费者和商家体验的天花板。低延迟是这些挑战中的核心,内存数据库Tair因其高吞吐、大连接数、热点请求处理、异常流量管理和复杂计算逻辑优化等特点,在低延迟场景下表现出色。Tair使用内存/SCM混合存储和各种索引来提供低延迟服务,并通过无锁并发、水平扩展分区等技术应对高并发。此外,Tair还通过热点策略、流控和执行流程优化等手段确保在大促时的稳定性和性能。Tair在双十一期间支持了购物车、销量统计、卖家优惠券召回和互动场景等多种业务,展现其低延迟和高并发的能力。
76563 10
|
7天前
|
SQL 设计模式 Java
【软件工程底层逻辑系列】建模的底层逻辑
在本文中,给出建模的底层逻辑:用图形逻辑地表达现实业务的抽象,通过一些大家通识的技术案例讲述建模的过程。
74856 1
|
7天前
|
人工智能 安全 Devops
让研发规范管得住 - 我们为什么在流水线之上又做了研发流程?
研发规范的目标,是为了解决或降低出现软件危机的风险。但传统流水线受限于工具的定位,无法解决研发规范的落地问题,需要在更高的层面来解决。阿里云云效团队经过内部启发后推出的新产品:云效应用交付平台 AppStack 给出了解决方案,快来使用体验吧!
78340 3
|
5天前
|
关系型数据库 Serverless 分布式数据库
高峰无忧,探索PolarDB PG版Serverless的弹性魅力
在数字经济时代,数据库成为企业命脉,面对爆炸式增长的数据,企业面临管理挑战。云原生和Serverless技术革新数据库领域,PolarDB PG Serverless作为阿里云的云原生数据库解决方案,融合Serverless与PostgreSQL,实现自动弹性扩展,按需计费,降低运维成本。它通过计算与存储分离技术,提供高可用性、灾备策略和简化运维。PolarDB PG Serverless智能应变业务峰值,实时监控与调整资源,确保性能稳定。通过免费体验,用户可观察其弹性性能和价格力,感受技术优势。