Table Store SDK には、PutRow、GetRow、UpdateRow、DeleteRow の単一行操作 API が用意されています。
PutRow
指定された行にデータを挿入します。
API
// @param PutRowRequest PutRow 操作の実行に必要なパラメーターをカプセル化します。
// @return PutRowResponse
PutRow(request *PutRowRequest) (*PutRowResponse, error)
例
putRowRequest := new(tablestore.PutRowRequest)
putRowChange := new(tablestore.PutRowChange)
putRowChange.TableName = tableName
putPk := new(tablestore.PrimaryKey)
putPk.AddPrimaryKeyColumn("pk1", "pk1value1")
putPk.AddPrimaryKeyColumn("pk2", int64(2))
putPk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
putRowChange.PrimaryKey = putPk
putRowChange.AddColumn("col1", "col1data1")
putRowChange.AddColumn("col2", int64(3))
putRowChange.AddColumn("col3", []byte("test"))
putRowChange.SetCondition(tablestore.RowExistenceExpectation_IGNORE)
putRowRequest.PutRowChange = putRowChange
_, err := client.PutRow(putRowRequest)
if err ! = nil {
fmt.Println("putrow failed with error:", err)
} else {
fmt.Println("putrow finished")
}
- RowExistenceExpectation.IGNORE は、指定された行が存在するかどうかにかかわらず、新しいデータが挿入されることを示します。 挿入されたデータが既存のデータと同じ場合、既存のデータは上書きされます。
- RowExistenceExpectation.EXPECT_EXIST は、指定された行が存在する場合にのみ新しいデータが挿入されることを示します。 既存のデータは上書きされます。
- RowExistenceExpectation.EXPECT_NOT_EXIST は、指定された行が存在しない場合にのみデータが挿入されることを示します。
注 完全なサンプルコードは、『PutRow@GitHub』をご参照ください。
GetRow
この API は、指定された主キーに基づいて単一のデータ行を読み取ります。
API
// テーブルからデータの行を返します。
//
// @param GetRowRequest GetRow オペレーションの実行に必要なパラメーターをカプセル化します。
// @return GetRowResponse GetRow 操作に対するレスポンスの内容です。
GetRow(request *GetRowRequest) (*GetRowResponse, error)
例
データ行を読み取ります。
getRowRequest := new(tablestore.GetRowRequest)
criteria := new(tablestore.SingleRowQueryCriteria);
putPk := new(tablestore.PrimaryKey)
putPk.AddPrimaryKeyColumn("pk1", "pk1value1")
putPk.AddPrimaryKeyColumn("pk2", int64(2))
putPk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
criteria.PrimaryKey = putPk
getRowRequest.SingleRowQueryCriteria = criteria
getRowRequest.SingleRowQueryCriteria.TableName = tableName
getRowRequest.SingleRowQueryCriteria.MaxVersion = 1
getResp, err := client.GetRow(getRowRequest)
if err ! = nil {
fmt.Println("getrow failed with error:", err)
} else {
fmt.Println("get row col0 result is ",getResp.Columns[0]. ColumnName, getResp.Columns[0]. Value,)
}
注 GetRow@GitHubで完全なサンプルコードを入手してください。
UpdateRow
指定された行のデータを更新します。 指定された行が存在しない場合は、新しい行が追加されます。 指定された行が存在する場合、指定された列の値は、リクエストされた内容に合わせて、追加、変更、又は削除されます。
API
// テーブル内のデータ行を更新します。
// @param UpdateRowRequest UpdateRow 操作の実行に必要なパラメータをカプセル化します。
// @return UpdateRowResponse UpdateRow オペレーションに対する応答の内容
UpdateRow(request *UpdateRowRequest) (*UpdateRowResponse, error)
例
データ行を更新します。
updateRowRequest := new(tablestore.UpdateRowRequest)
updateRowChange := new(tablestore.UpdateRowChange)
updateRowChange.TableName = tableName
updatePk := new(tablestore.PrimaryKey)
updatePk.AddPrimaryKeyColumn("pk1", "pk1value1")
updatePk.AddPrimaryKeyColumn("pk2", int64(2))
updatePk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
updateRowChange.PrimaryKey = updatePk
updateRowChange.DeleteColumn("col1")
updateRowChange.PutColumn("col2", int64(77))
updateRowChange.PutColumn("col4", "newcol3")
updateRowChange.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
updateRowRequest.UpdateRowChange = updateRowChange
_, err := client.UpdateRow(updateRowRequest)
if err ! = nil {
fmt.Println("update failed with error:", err)
} else {
fmt.Println("update row finished")
}
注 UpdateRow@GitHubで完全なサンプルコードを入手してください。
DeleteRow
API
// テーブルからデータ行を削除します
// @param DeleteRowRequest DeleteRow 操作の実行に必要なパラメーターをカプセル化します。
// @return DeleteRowResponse DeleteRow 操作に対する応答の内容です。
DeleteRow(request *DeleteRowRequest) (*DeleteRowResponse, error)
例
この API はデータ行を削除します。
deleteRowReq := new(tablestore.DeleteRowRequest)
deleteRowReq.DeleteRowChange = new(tablestore.DeleteRowChange)
deleteRowReq.DeleteRowChange.TableName = tableName
deletePk := new(tablestore.PrimaryKey)
deletePk.AddPrimaryKeyColumn("pk1", "pk1value1")
deletePk.AddPrimaryKeyColumn("pk2", int64(2))
deletePk.AddPrimaryKeyColumn("pk3", []byte("pk3"))
deleteRowReq.DeleteRowChange.PrimaryKey = deletePk
deleteRowReq.DeleteRowChange.SetCondition(tablestore.RowExistenceExpectation_EXPECT_EXIST)
clCondition1 := tablestore.NewSingleColumnCondition("col2", tablestore.CT_EQUAL, int64(3))
deleteRowReq.DeleteRowChange.SetColumnCondition(clCondition1)
_, err := client.DeleteRow(deleteRowReq)
if err ! = nil {
fmt.Println("delete failed with error:", err)
} else {
fmt.Println("delete row finished")
}
注 完全なサンプルコードは、『DeleteRow@GitHub』をご参照ください。