本文主要为您介绍如何通过表格存储的Python SDK在创建表时添加主键自增列并写入数据。

说明
  • 若设置数据表的某一列主键为自增列,在写入一行数据时,这一列主键无需填值,表格存储会自动生成这一主键列的值。
  • 自增列的值唯一,且严格递增。
  • 每张表最多只允许设置一个主键为自增列。
  • 分区键和属性列不允许设置为自增列。

创建表

您可以在创建表的同时添加主键自增列,示例如下:

from tablestore import *

table_name = 'OTSPkAutoIncrSimpleExample'

def create_table(client):
    # 创建表,此表包括两个主键:gid,INTEGER类型;uid,INTEGER类型,自增列。
    schema_of_primary_key = [('gid', 'INTEGER'), ('uid', 'INTEGER', PK_AUTO_INCR)]
    table_meta = TableMeta(table_name, schema_of_primary_key)
    table_options = TableOptions()
    reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))
    client.create_table(table_meta, table_options, reserved_throughput)
    print ('Table has been created.')

写入数据

示例如下:

from tablestore import *

table_name = 'OTSPkAutoIncrSimpleExample'

def put_row(client):
    # 写入主键:gid为1,uid为自增列。uid列必须设置,否则报错。
    primary_key = [('gid',1), ('uid', PK_AUTO_INCR)]
    attribute_columns = [('name','John'), ('mobile',15100000000), ('address','China'), ('age',20)]
    row = Row(primary_key, attribute_columns)

    # 属性列
    row.attribute_columns = [('name','John'), ('mobile',15100000000), ('address','China'), ('age',25)]
    consumed, return_row = client.put_row(table_name, row)
    print ('Write succeed, consume %s write cu.' % consumed.write)

    consumed, return_row = client.put_row(table_name, row, return_type = ReturnType.RT_PK)
    print ('Write succeed, consume %s write cu.' % consumed.write)
    print ('Primary key:%s' % return_row.primary_key)