全部產品
Search
文件中心

Tablestore:更新單行資料

更新時間:Mar 10, 2026

本文介紹如何通過 PHP SDK 更新Table Store資料表中的單行資料,您可以更新屬性列的值、添加屬性列、刪除屬性列的某個版本或整個屬性列。

前提條件

初始化Tablestore Client

方法說明

public function updateRow(array $request)

$request參數說明

名稱

類型

說明

table_name(必選)

string

資料表名稱。

primary_key(必選)

array

主鍵資訊,包括主鍵列名稱和主索引值。

  • 主鍵列資料類型包括 STRING、INTEGER 和 BINARY。

  • 主鍵個數和類型必須與資料表的主鍵保持一致。

update_of_attribute_columns(必選)

array

更新的屬性列資訊和操作類型。

condition(必選)

array

更新條件,詳情請參見條件更新

return_content(可選)

array

返回的資料內容。

  • return_type(必選)array:傳回型別。

    • ReturnTypeConst::CONST_NONE:預設值,不返回資料。

    • ReturnTypeConst::CONST_PK:返回主鍵列。

    • ReturnTypeConst::CONST_AFTER_MODIFY:返回更改後的列值,用於原子計數器

transaction_id(可選)

string

局部事務ID,用於唯一標識局部事務,詳情請參見局部事務

範例程式碼

以下範例程式碼用於修改 test_table 表中主索引值為 row1 的行資料,將屬性列 col1 的值修改為 changed_val1。

$request = array(
    'table_name' => 'test_table',
    // 構造主鍵
    'primary_key' => array(
        array('id', 'row1')
    ),
    // 更新行資料時必須指定更新條件 (RowExistenceExpectationConst::CONST_IGNORE,表示不做行存在性判斷)
    'condition' => RowExistenceExpectationConst::CONST_IGNORE
);
// 更新的屬性列
$request['update_of_attribute_columns'] = array(
    'PUT' => array(
        array('col1', 'changed_val1')
    )
);

try {
    // 調用 updateRow 方法更新行資料
    $response = $client->updateRow($request);
    echo "* Read CU Cost: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Write CU Cost: " . $response['consumed']['capacity_unit']['write'] . "\n";   
} catch (Exception $e) {
    echo "Update Row failed.";
}

您也可以參照範例程式碼進行以下行資料操作。

  • 添加一個屬性列。

    $request['update_of_attribute_columns'] = array(
        'PUT' => array(
            array('col2', 'val2')
        )
    );
  • 設定屬性列資料版本號碼。

    $request['update_of_attribute_columns'] = array(
        'PUT' => array(
            array('col2', 'val2', null, intval(microtime(true) * 1000))
        )
    );
  • 刪除屬性列指定版本的資料。

    $request['update_of_attribute_columns'] = array(
        'DELETE' => array(
            array('col2', 1754285998447)
        )
    );
  • 刪除整個屬性列資料。

    $request['update_of_attribute_columns'] = array(
        'DELETE_ALL' => array('col2')
    );

相關文檔

批次更新資料