

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# UPDATE
<a name="cql.dml.update"></a>

使用 `UPDATE`陳述式來修改資料表中的資料列。

**語法**

```
update_statement ::=  UPDATE table_name
                      [ USING update_parameter ( AND update_parameter )* ]
                      SET assignment ( ',' assignment )*
                      WHERE where_clause
                      [ IF ( EXISTS | condition ( AND condition )*) ]
update_parameter ::=  ( integer | bind_marker )
assignment       ::=  simple_selection '=' term
                     | column_name '=' column_name ( '+' | '-' ) term
                     | column_name '=' list_literal '+' column_name
simple_selection ::=  column_name
                     | column_name '[' term ']'
                     | column_name '.' `field_name
condition        ::=  simple_selection operator term
```

**範例**

```
UPDATE "myGSGKeyspace".employees_tbl SET pay_scale = 5 WHERE id = '567-89-0123' AND division = 'Marketing' ;
```

若要遞增 `counter`，請使用下列語法。如需詳細資訊，請參閱[計數器](cql.elements.md#cql.data-types.numeric.counters)。

```
UPDATE ActiveUsers SET counter = counter + 1  WHERE user = A70FE1C0-5408-4AE3-BE34-8733E5K09F14 AND action = 'click';
```

**更新參數**

`UPDATE` 支援下列值做為 `update_parameter`：
+ `TTL` – 以秒為單位的時間值。最大可設定的值為 630,720,000 秒，相當於 20 年。
+ `TIMESTAMP` – 代表自稱為 的標準基準時間以來微秒數`bigint`的值epoch：1970 年 1 月 1 日 00：00：00 GMT。Amazon Keyspaces 中的時間戳記必須介於過去 2 天到未來的 5 分鐘之間。

**範例**

```
UPDATE my_table (userid, time, subject, body, user)
        VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello again','205.212.123.123')
        USING TIMESTAMP '2022-11-03 13:30:54+0400';
```