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

Tablestore:1 行の書き込み

最終更新日:Apr 01, 2026

このトピックでは、Tablestore のテーブルに 1 行を書き込むために Go SDK を使用する方法について説明します。

前提条件

Tablestore クライアントの初期化

メソッド

func (tableStoreClient *TableStoreClient) PutRow(request *PutRowRequest) (*PutRowResponse, error)

PutRowRequest のパラメーター

  • PutRowChange(必須)*PutRowChange:書き込む行。このパラメーターには以下のサブパラメーターが含まれます。

    パラメーター

    説明

    TableName(必須)

    string

    テーブル名。

    PrimaryKey(必須)

    *PrimaryKey

    行のプライマリキー。プライマリキー列の名前と値を含みます。

    • プライマリキー列のデータの型は、STRING、INTEGER、または BINARY のいずれかです。

    • プライマリキー列の数およびデータの型は、テーブルのスキーマと一致している必要があります。

    • プライマリキー列が自動インクリメント列の場合、その値にはプレースホルダーを指定します。詳細については、「自動採番主キー」をご参照ください。

    Columns(任意)

    []AttributeColumn

    属性列。列名、値、タイムスタンプを含みます。

    • 属性列のデータの型は、STRING、INTEGER、BINARY、DOUBLE、または BOOLEAN のいずれかです。

    • デフォルトでは、システムがデータバージョンに対して自動的にタイムスタンプを生成します。また、カスタムタイムスタンプを指定することも可能です。詳細については、「データバージョンと生存時間」をご参照ください。

    Condition(必須)

    *RowCondition

    書き込み操作の条件。詳細については、「条件付き更新」をご参照ください。

    ReturnType(任意)

    ReturnType

    戻り値の種類。

    • ReturnType_RT_NONE(デフォルト):データを返しません。

    • ReturnType_RT_PK:プライマリキー列を返します。このオプションは、テーブルに自動採番主キー列が存在する場合に有効です。

    • ReturnType_RT_AFTER_MODIFY:更新後の列値を返します。このオプションは、「アトミックカウンター」操作で使用されます。

    TransactionId(任意)

    *string

    ローカルトランザクションの ID。詳細については、「ローカルトランザクション」をご参照ください。

サンプルコード

以下のサンプルコードでは、プライマリキー値が 'row1' の行を 'test_table' テーブルに書き込む方法を示します。

func PutRowSample(client *tablestore.TableStoreClient) {
    // プライマリキーを構築します。
    putPk := new(tablestore.PrimaryKey)
    putPk.AddPrimaryKeyColumn("id", "row1")

    // 書き込む行を構築します。
    putRowChange := new(tablestore.PutRowChange)
    putRowChange.TableName = "test_table"
    putRowChange.PrimaryKey = putPk
    // 書き込み操作には必ず条件を指定する必要があります。RowExistenceExpectation_IGNORE を指定すると、行の存在チェックをスキップします。
    putRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)

    // PutRow メソッドを呼び出して行を書き込みます。
    putRowRequest := new(tablestore.PutRowRequest)
    putRowRequest.PutRowChange = putRowChange
    response, err := client.PutRow(putRowRequest)
    if err != nil {
        fmt.Println("行の書き込みに失敗しました。エラー: ", err)
    } else {
        fmt.Printf("* RequestId: %s \n", response.RequestId)
        fmt.Printf("* 読み取り CU コスト: %d \n", response.ConsumedCapacityUnit.Read)
        fmt.Printf("* 書き込み CU コスト: %d \n", response.ConsumedCapacityUnit.Write)
    }
}
  • 属性列を追加します。

    putRowChange.AddColumn("col1", "val1")
  • タイムスタンプを指定します。各属性列ごとに個別にタイムスタンプを指定できます。

    putRowChange.AddColumnWithTimestamp("col1", "val1", int64(time.Now().Unix() * 1000))
    putRowChange.AddColumnWithTimestamp("col2", int64(3), int64(1758249013000))

関連トピック

データのバッチ更新