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』をご参照ください。