使用 Python SDK 设置主键列自增,并在写入数据时获取系统生成的自增值。
前提条件
安装Tablestore Python SDK并初始化客户端。主键列自增需要 4.0.0 及以上版本,建议使用最新版本。
功能说明
自增主键列由 Tablestore 自动生成 64 位有符号整数值。生成的值在同一分区键内唯一且严格递增,但不保证连续。
设置主键列自增
创建数据表时,将一个非分区键的 INTEGER 类型主键列设置为 PK_AUTO_INCR。每张数据表最多设置一个自增主键列;已创建的数据表无法再设置。
以下示例创建包含分区键 id 和自增主键列 sequence_id 的 example_table。
table_meta = TableMeta(
"example_table",
[
("id", "STRING"),
("sequence_id", "INTEGER", PK_AUTO_INCR),
],
)
table_options = TableOptions()
reserved_throughput = ReservedThroughput(CapacityUnit(0, 0))
client.create_table(table_meta, table_options, reserved_throughput)
写入数据并获取自增值
写入数据时,将自增主键列的值设置为 PK_AUTO_INCR。如需在后续查询或更新中使用系统生成的值,将 return_type 设置为 ReturnType.RT_PK。
primary_key = [
("id", "device-001"),
("sequence_id", PK_AUTO_INCR),
]
attribute_columns = [("status", "online")]
row = Row(primary_key, attribute_columns)
_, return_row = client.put_row(
"example_table",
row,
return_type=ReturnType.RT_PK,
)
print(return_row.primary_key)
参数说明
自增主键列配置
schema_of_primary_key[] 中用于配置自增主键列的元组包含以下元素。
|
名称 |
类型 |
说明 |
|
name(必选) |
|
主键列名称。 |
|
type(必选) |
|
主键列类型,必须设置为 |
|
option(必选) |
|
主键列选项,必须设置为 |
写入参数
put_row 方法包含以下与主键列自增相关的参数。
|
名称 |
类型 |
说明 |
|
table_name(必选) |
|
数据表名称。 |
|
row(必选) |
|
待写入的行数据。自增主键列的值必须设置为 |
|
return_type(可选) |
|
返回类型。设置为 |
返回值
put_row 方法返回一个元组,包含以下信息。
|
字段 |
类型 |
说明 |
|
consumed |
|
本次操作消耗的读写 CU。 |
|
return_row |
|
将 |