

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 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`：以秒为单位的时间值。最大可配置值为 630720000 秒，相当于 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';
```