开发者社区 问答 正文

主键列自增的功能有哪些


本节介绍表格存储中的主键列自增功能,即若用户设置某一列主键为自增列,在写入一行数据时,这一列主键不用填值,表格存储会自动为用户生成这一列主键的值,这个值在分区键上保证唯一,且严格递增。

特点


  • 表格存储独有的系统架构和主键自增列实现方式,可以保证生成的自增列的值唯一,且严格递增。

  • 表格存储支持多个主键,第一个主键为分区键,分区键不允许设置为自增列。

  • 除分区键以外,其它主键都可以设置为自增列。

  • 每张表最多只允许设置一个主键为自增列。

  • 属性列不能设置为自增列。

  • 自动生成的自增列为 64 位的有符号长整型。

  • 分区健级别严格递增。

  • 自增列功能是表级别的,同一个实例下面可以有自增列的表,也可以有非自增列的表。

  • 仅支持在创建表的时候指定自增列,对于已存在的表不支持创建自增列。

  • 使用主键列自增功能后,条件更新的逻辑和之前一样,具体如下表所示:
APIIGNOREEXPECT_EXISTEXPECT_NOT_EXIST
PutRow:已存在行失败成功失败
PutRow:不存在行成功失败失败
UpdateRow: 已存在行失败成功失败
UpdateRow:不存在行成功失败失败
DeleteRow: 已存在行失败失败失败
DeleteRow: 不存在行成功成功失败


接口



CreateTable

  • 建表的时候需要设置某一列为自增列,具体设置方式见SDK。
  • 表创建好后,无法再次更改表是否为自增表。


UpdateTable

  • 无法通过UpdateTable更改表的自增属性。


PutRow/UpdateRow/BatchWriteRow

  • 写入的时候,需要自增的列不需要设置具体值,只需要设置一个占位符,比如AUTO_INCREMENT,具体见SDK。
  • 可以设置ReturnContent中的ReturnType为RT_PK,即返回完整主键值,可以用于GetRow查询。


GetRow/BatchGetRow

  • GetRow的时候需要完整主键列,可以通过设置PutRow、UpdateRow或BatchWriteRow中的ReturnType为RT_PK获取到。


其他接口


无变化

场景


TableStore主键列自增功能在IM系统中的应用

使用


JAVA SDK (NEW):主键列自增

计费


主键列自增功能不影响现有计费逻辑,返回的主键列数据不会额外消耗读 CU。

展开
收起
云栖大讲堂 2017-10-25 13:44:44 2003 分享 版权
0 条回答
写回答
取消 提交回答