すべてのプロダクト
Search
ドキュメントセンター

Tablestore:行の書き込み

最終更新日:Aug 05, 2026

Tablestore SDK for Python を使用して行を書き込み、必要に応じて書き込み条件、データバージョン、またはローカルトランザクションを指定します。

前提条件

Tablestore SDK for Python をインストールし、クライアントを初期化します。

機能説明

put_row を呼び出して行を書き込みます。プライマリキーがすでに存在する場合、このメソッドは行を上書きします。存在しない場合は、新しい行を作成します。

def put_row(
    self,
    table_name,
    row,
    condition=None,
    return_type=None,
    transaction_id=None,
)

次の例では、プライマリキーが [("partition", "device"), ("id", 1)] の行を example_table に書き込みます。

primary_key = [("partition", "device"), ("id", 1)]
attribute_columns = [("name", "thermometer"), ("status", "online")]
row = Row(primary_key, attribute_columns)
condition = Condition(RowExistenceExpectation.IGNORE)

consumed, return_row = client.put_row(
    "example_table",
    row,
    condition,
)
print("Write CU: %s" % consumed.write)

パラメーター

put_row メソッドには、次のパラメーターが含まれます。

名前

説明

table_name (必須)

str

テーブルの名前。

row (必須)

Row

書き込むプライマリキーと属性列。

condition (オプション)

Condition

書き込み条件。デフォルトでは、行の存在はチェックされません。詳細については、「条件付き更新の使用」をご参照ください。

return_type (オプション)

ReturnType

戻り値の型。 RT_NONE はデフォルト値で、データを返しません。 RT_PK はプライマリキーを返し、通常は自動インクリメントのプライマリキー列の値を取得するために使用されます。

transaction_id (オプション)

str

ローカルトランザクション ID。このパラメーターは、ローカルトランザクション内の書き込みでのみ指定します。詳細については、「ローカルトランザクションの使用」をご参照ください。

行データ

row パラメーターは Row 型で、次のパラメーターが含まれます。

名前

説明

primary_key (必須)

List[Tuple]

プライマリキー。プライマリキー列の名前、順序、数、型は、テーブルのプライマリキースキーマと一致する必要があります。

attribute_columns (オプション)

List[Tuple]

属性列。各要素は (column_name, column_value) または (column_name, column_value, timestamp) です。属性列の値は strintbytesfloat、および bool 型をサポートします。timestamp が省略された場合、サーバーはデータバージョンを生成します。

応答

put_row は次の値を返します。

フィールド

説明

consumed

CapacityUnit

この操作で消費された読み取りおよび書き込みキャパシティーユニット。

return_row

Row

返される行。 return_typeRT_PK の場合、プライマリキーが返されます。 それ以外の場合、この値は None です。

複数の属性列の書き込み

次の例では、文字列型、整数型、ブール型の属性列を書き込みます。

primary_key = [("partition", "device"), ("id", 2)]
attribute_columns = [
    ("name", "humidity-sensor"),
    ("temperature", 26),
    ("enabled", True),
]
row = Row(primary_key, attribute_columns)

client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
)

データバージョンの指定

属性列タプルの3番目の要素で、データバージョンをミリ秒単位で指定します。バージョンは、テーブルで許容されている有効なバージョン範囲内に収める必要があります。

timestamp = int(time.time() * 1000)
primary_key = [("partition", "device"), ("id", 3)]
attribute_columns = [
    ("status", "online", timestamp),
    ("temperature", 25, timestamp),
]
row = Row(primary_key, attribute_columns)

client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
)

自動採番主キー値の取得

自動インクリメントプライマリキー列があるテーブルに書き込む場合、列の値を PK_AUTO_INCR に、return_typeRT_PK に設定します。要件の詳細については、「自動インクリメントプライマリキー列を使用する」をご参照ください。

primary_key = [("partition", "device"), ("id", PK_AUTO_INCR)]
row = Row(primary_key, [("name", "pressure-sensor")])

consumed, return_row = client.put_row(
    "example_table",
    row,
    Condition(RowExistenceExpectation.IGNORE),
    ReturnType.RT_PK,
)
print(return_row.primary_key)