暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

自增列概述

酷数据库 2023-09-14
46

概念

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论