概念
PolarDB-X支持通过关键字AUTO_INCREMENT
为列设置自增属性,能够自动为列填充全局唯一值。
- 当
INSERT
语句没有包含自增列,或者为自增列指定的值是0或NULL时,PolarDB-X会自动为该列分配一个全局唯一的值; - 当
INSERT
语句显式为自增列插入值时,PolarDB-X会使用指定的显式值,并自动跟随插入的显式值,使后续自动填充的值大于已插入的显式值; - 在AUTO模式数据库中,默认的自增列行为,在各方面(唯一性、单调性、连续性等)与MySQL已经一致。
说明
关于AUTO模式数据库与DRDS模式数据库的介绍,请参见AUTO模式数据库与DRDS模式数据库。
原理
在PolarDB-X中,如果创建表时通过AUTO_INCREMENT
指定了自增列,为了保证自增列的全局唯一性,则自动为该表创建并关联一个Sequence对象,在插入数据时使用关联的Sequence对象分配全局唯一值并进行自动填充。
根据数据库模式的不同,PolarDB-X在创建表时自动关联了不同的默认Sequence类型:
- 在AUTO模式库中,默认关联的是New Sequence,具备以下特性:
- 唯一性:保证全局唯一;
- 单调性:保证全局单调递增;
- 连续性:保证全局连续(没有异常报错或者实例重启等情况下);
- 兼容性:与MySQL自增列的特性很好地兼容。
- 在DRDS模式库中,默认关联的是Group Sequence,具备以下特性:
- 唯一性:保证全局唯一;
- 单调性:在计算节点内部保证单调递增,不保证全局单调递增;
- 连续性:在连接计算节点的会话和缓存区间范围内,保证连续(没有异常报错或者实例重启等情况下);
- 兼容性:与MySQL自增列的唯一性兼容,其它特性与MySQL有所差异。
可以根据实际需求自定义想要关联的Sequence类型,具体方法请参见关联Sequence,不同类型的Sequence特性和适用场景,请参见概述。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
1899次阅读
2025-04-09 15:33:27
国内独家|阿里云首发MongoDB 8.0,性能提升“快”人一步
阿里云瑶池数据库
179次阅读
2025-04-24 09:53:13
从mysql社区版迁移到信创PolardbX-DN上
金同学
168次阅读
2025-04-01 09:50:14
SQL 优化之 OR 子句改写
xiongcc
93次阅读
2025-04-21 00:08:06
PolarDB PostgreSQL版运维——浅谈事务回卷
PolarDB
38次阅读
2025-03-28 15:02:47
PolarDB PostgreSQL版时间线解析
PolarDB
38次阅读
2025-03-28 15:02:46
揭秘PostgreSQL SELECT查询中的意外“写”行为
PolarDB
35次阅读
2025-04-15 09:56:40
PolarDB Oracle 兼容性里程碑(2024年10月至2025年3月)
PolarDB
33次阅读
2025-04-07 09:57:52
华鼎冷链科技 × 阿里云瑶池数据库,打造全链路协同的智慧冷链新标杆
阿里云瑶池数据库
31次阅读
2025-04-01 12:27:03
基于Ganos GeoSOT地理网格模型:无人机路径规划能力实践
千寻
29次阅读
2025-04-23 15:41:11