Tablestore SDK for Go を使用して、Wide Column モデルテーブルの行を書き込むか更新します。
前提条件
Tablestore SDK for Go をインストールし、クライアントを初期化します。
説明
PutRow を呼び出して、プライマリキーで識別される行に属性列を書き込みます。行が存在する場合、指定された属性列に対して新しいデータバージョンが追加または上書きされます。Condition を使用して、書き込みを実行するかどうかを制御できます。
func (tableStoreClient *TableStoreClient) PutRow(request *PutRowRequest) (*PutRowResponse, error)
次のサンプルでは、example_table テーブルに、プライマリキー値が row1 の行を書き込みます。
primaryKey := &tablestore.PrimaryKey{}
primaryKey.AddPrimaryKeyColumn("id", "row1")
change := &tablestore.PutRowChange{
TableName: "example_table",
PrimaryKey: primaryKey,
}
change.AddColumn("name", "Alice")
change.AddColumn("age", int64(30))
change.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
_, err := client.PutRow(&tablestore.PutRowRequest{PutRowChange: change})
if err != nil {
log.Fatal(err)
}
パラメータ
PutRowRequest には、次のパラメーターが含まれています。
|
名前 |
タイプ |
説明 |
|
PutRowChange (必須) |
|
行の書き込み設定。 |
行の変更
PutRowChange には以下のパラメーターが含まれています。
|
名前 |
タイプ |
説明 |
|
TableName (必須) |
|
テーブル名。 |
|
PrimaryKey (必須) |
|
行のプライマリキー。プライマリキー列の名前、順序、タイプは、テーブルスキーマと一致する必要があります。自動採番主キー列を含む行を読み取るか操作する場合は、完全なプライマリキーを指定します。 |
|
Columns (オプション) |
|
書き込む属性列。サーバーにデータバージョンを生成させるには |
|
Condition (必須) |
|
書き込み条件。行の存在条件と列条件を含めることができます。詳細については、「条件付き更新の使用」をご参照ください。 |
|
ReturnType (オプション) |
|
戻り値の型。 デフォルト値: |
|
TransactionId (オプション) |
|
ローカルトランザクションID。ローカルトランザクション内の書き込みの場合にのみ、このパラメータを指定します。詳細については、「ローカルトランザクションの使用」をご参照ください。 |
属性列
Columns の各要素は AttributeColumn 型であり、次のパラメーターを含みます。
|
名前 |
タイプ |
説明 |
|
ColumnName (必須) |
|
属性列名。 |
|
Value (必須) |
|
属性列の値。文字列、整数、バイナリ、浮動小数点数、ブール値がサポートされています。 |
|
Timestamp (オプション) |
|
データバージョン (ミリ秒単位)。このパラメータが指定されていない場合、サーバーがバージョンを生成します。 |
応答
PutRowResponse は以下のビジネスフィールドを含みます。
|
フィールド |
タイプ |
説明 |
|
|
|
書き込まれた行の完全なプライマリキーです。このフィールドは、 |
例
データバージョンの指定
次のサンプルでは、現在の時刻と指定されたタイムスタンプを属性列のデータバージョンとして使用します。
currentTimestamp := time.Now().UnixMilli()
change.AddColumnWithTimestamp("status", "active", currentTimestamp)
change.AddColumnWithTimestamp("score", int64(95), int64(1758249013000))