

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

# 使用 `UPDATE` 语句可编辑行和列的自定义生存时间（TTL）设置
<a name="TTL-how-to-update-cql"></a>

**注意**  
必须先在表上启用 TTL，然后才能为行和列设置自定义 TTL 值。有关更多信息，请参阅 [使用自定义生存时间（TTL）更新表](TTL-how-to-enable-custom-alter.md)。

可以使用 `UPDATE` 语句，通过为各行设置过期日期来覆盖表的默认 TTL 值：
+ 行 - 可以使用自定义 TTL 值来更新现有数据行。
+ 列 - 可以使用自定义 TTL 值更新现有行中的部分列。

为行和列设置 TTL 值优先于表的默认 TTL 设置。

要将前面插入的 subject 列的 TTL 设置从 259,200 秒（3 天）改为 86,400 秒（1 天），请使用以下语句。

```
UPDATE {{my_table}} USING TTL 86400 set subject = 'Updated Message' WHERE userid = B79CB3BA-745E-5D9A-8903-4A02327A7E09 and time = 96a29100-5e25-11ec-90d7-b5d91eceda0a;
```

您可以运行一个简单的选择查询，查看到期时间之前更新的记录。

```
SELECT * from {{my_table}};
```

该查询会显示以下输出。

```
userid                               | time                                 | body  | subject         | user
--------------------------------------+--------------------------------------+-------+-----------------+-----------------
b79cb3ba-745e-5d9a-8903-4a02327a7e09  | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello | Updated Message | 205.212.123.123
50554d6e-29bb-11e5-b345-feff819cdc9f  | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello |         Message | 205.212.123.123
```

要确认过期已成功，请在配置的过期时间后再次运行相同的查询。

```
SELECT * from {{my_table}};
```

在 subject 列过期后，该查询会显示以下输出。

```
userid                               | time                                 | body  | subject | user
--------------------------------------+--------------------------------------+-------+---------+-----------------
b79cb3ba-745e-5d9a-8903-4a02327a7e09  | 96a29100-5e25-11ec-90d7-b5d91eceda0a | Hello |    null | 205.212.123.123
50554d6e-29bb-11e5-b345-feff819cdc9f  | cf03fb21-59b5-11ec-b371-dff626ab9620 | Hello | Message | 205.212.123.123
```