すべてのプロダクト
Search
ドキュメントセンター

Tablestore:1 行のデータを更新する

最終更新日:Mar 12, 2026

Tablestore Node.js SDK の `updateRow` メソッドを呼び出して、Tablestore テーブル内の 1 行のデータを更新します。属性列の値を変更したり、新しい属性列を追加したり、特定のバージョンのデータを削除したり、属性列全体を削除したりできます。

前提条件

Tablestore クライアントの初期化

メソッド

updateRow: function updateRow(params, callback)

パラメーター

名前

説明

tableName (必須)

string

データテーブルの名前です。

primaryKey (必須)

Array

プライマリキー情報(プライマリキー列の名前と値を含む)です。

  • プライマリキー列のデータの型は、STRING、INTEGER、または BINARY のいずれかです。

  • プライマリキーの数および型は、データテーブルの定義と一致している必要があります。

updateOfAttributeColumns (必須)

Array

更新対象の属性列および実行する操作の種類に関する情報です。

condition (必須)

TableStore.Condition

更新条件です。詳細については、「条件付き更新」をご参照ください。

returnContent (任意)

object

返却するデータの内容です。

  • returnType (任意) number: 返却タイプです。

    • TableStore.ReturnType.NONE: デフォルト値。 データは返却されません。

    • TableStore.ReturnType.Primarykey: プライマリキー列が返却されます。

    • TableStore.ReturnType.AfterModify: 更新後の列の値が返却されます。これは「アトミックカウンター」で使用されます。

transactionId (任意)

string

ローカルトランザクション ID です。この ID は、ローカルトランザクションを一意に識別します。詳細については、「ローカルトランザクション」をご参照ください。

以下のサンプルコードでは、`test_table` テーブル内のプライマリキーが `row1` の行について、属性列 `col1` の値を `changed_val1` に更新します。

var params = {
    tableName: 'test_table',
    primaryKey: [{ 'id': 'row1' }],
    // 行を更新するには更新条件が必要です。TableStore.RowExistenceExpectation.IGNORE は、行の存在チェックを行わないことを意味します。
    condition: new TableStore.Condition(TableStore.RowExistenceExpectation.IGNORE, null)
};
params.updateOfAttributeColumns = [
    { 'PUT': [{ 'col1': 'changed_val1' }] }
]

client.updateRow(params, function (err, data) {
    if (err) {
        console.log('行の更新に失敗しました。エラー:', err);
        return;
    }
    console.log('RequestId: ', data.RequestId);
    console.log('読み取り CU コスト: ', data.consumed.capacityUnit.read);
    console.log('書き込み CU コスト: ', data.consumed.capacityUnit.write);
});

また、以下の行単位の操作も実行できます。

  • 属性列を追加します。

    params.updateOfAttributeColumns = [
        { 'PUT': [{ 'col2': 'val2' }] }
    ]
  • 属性列のバージョン番号を設定します。

    params.updateOfAttributeColumns = [
        { 'PUT': [{ 'col2': 'val2', 'timestamp': Date.now() }] }
    ]
  • 属性列から特定のバージョンのデータを削除します。

    params.updateOfAttributeColumns = [
        { 'DELETE': [{ 'col2': TableStore.Long.fromNumber(1496826473186) }] },
    ]
  • 属性列からすべてのデータを削除します。

    params.updateOfAttributeColumns = [
        { 'DELETE_ALL': ['col2'] }
    ]

参考文献

複数行のデータを一括更新する