全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
表格存储

主键列自增

更新时间:2017-10-18 12:44:36

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

特点

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

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

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

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

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

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

  • 分区健级别严格递增。

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

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

  • 使用主键列自增功能后,条件更新的逻辑和之前一样,具体如下表所示:

API IGNORE EXPECT_EXIST EXPECT_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。

本文导读目录