Tablestore SDK for Go を使用して、Wide Column モデルのテーブルの行の属性列を追加、変更、または削除します。
前提条件
Tablestore SDK for Go をインストールし、クライアントを初期化します。
説明
UpdateRow API を呼び出して、プライマリキーで識別される行の属性列を更新します。データバージョンの追加または上書き、特定のバージョンまたは属性列全体の削除ができます。Condition を使用して、更新を実行するかどうかを制御できます。
func (tableStoreClient *TableStoreClient) UpdateRow(request *UpdateRowRequest) (*UpdateRowResponse, error)
次のサンプルでは、example_table テーブルでプライマリキーの値が row1 の行を更新します。このサンプルでは、status 属性列を変更し、temporary 属性列を削除します。
primaryKey := &tablestore.PrimaryKey{}
primaryKey.AddPrimaryKeyColumn("id", "row1")
change := &tablestore.UpdateRowChange{
TableName: "example_table",
PrimaryKey: primaryKey,
}
change.PutColumn("status", "active")
change.DeleteColumn("temporary")
change.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
_, err := client.UpdateRow(&tablestore.UpdateRowRequest{UpdateRowChange: change})
if err != nil {
log.Fatal(err)
}
パラメーター
UpdateRowRequest には、次のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
UpdateRowChange (必須) |
|
行の更新設定。 |
行の変更
UpdateRowChange には、次のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
TableName (必須) |
|
テーブル名。 |
|
PrimaryKey (必須) |
|
行のプライマリキー。プライマリキー列の名前、順序、型は、テーブルスキーマと一致している必要があります。 |
|
Columns (必須) |
|
属性列の操作。 |
|
Condition (任意) |
|
更新条件。行の存在条件と列条件を含めることができます。詳細については、「条件付き更新の使用」をご参照ください。 |
|
TransactionId (任意) |
|
ローカルトランザクション ID。このパラメーターは、ローカルトランザクションで更新する場合にのみ指定します。詳細については、「ローカルトランザクションの使用」をご参照ください。 |
|
ReturnType (任意) |
|
アトミックカウンターの戻り値の型。 |
|
ColumnNamesToReturn (任意) |
|
アトミックカウンター操作後に新しい値が返される属性列の名前。 |
例
データバージョンの指定
属性列の特定のバージョンを書き込むには PutColumnWithTimestamp API を、特定のバージョンを削除するには DeleteColumnWithTimestamp API を呼び出します。
timestamp := time.Now().UnixMilli()
change.PutColumnWithTimestamp("score", int64(95), timestamp)
change.DeleteColumnWithTimestamp("legacy_status", timestamp)