

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

# INSERT
<a name="cql.dml.insert"></a>

使用 `INSERT` 语句可向表添加行。

**语法**

```
insert_statement ::=  INSERT INTO table_name ( names_values | json_clause )
                      [ IF NOT EXISTS ]
                      [ USING update_parameter ( AND update_parameter )* ]
names_values     ::=  names VALUES tuple_literal
json_clause      ::=  JSON string [ DEFAULT ( NULL | UNSET ) ]                
names            ::=  '(' column_name ( ',' column_name )* ')'
```

**示例**

```
INSERT INTO "myGSGKeyspace".employees_tbl (id, name, project, region, division, role, pay_scale, vacation_hrs, manager_id)
VALUES ('012-34-5678','Russ','NightFlight','US','Engineering','IC',3,12.5, '234-56-7890') ;
```

**更新参数**

`INSERT` 支持以下值作为 `update_parameter`：
+ `TTL`：以秒为单位的时间值。最大可配置值为 630720000 秒，相当于 20 年。
+ `TIMESTAMP`：一个 `bigint` 值，表示自标准基准时间（称为epoch：1970 年 1 月 1 日 00:00:00 GMT）以来的微秒数。Amazon Keyspaces 中的时间戳必须介于过去 2 天和未来 5 分钟之间。

**示例**

```
INSERT INTO my_table (userid, time, subject, body, user)
        VALUES (B79CB3BA-745E-5D9A-8903-4A02327A7E09, 96a29100-5e25-11ec-90d7-b5d91eceda0a, 'Message', 'Hello','205.212.123.123')
        USING TTL 259200;
```

**JSON 支持**

有关将 JSON 编码的数据类型映射到 Amazon Keyspaces 数据类型的表，请参阅 [Amazon Keyspaces 数据类型的 JSON 编码](cql.elements.md#cql.data-types.JSON)。

可以使用 `JSON` 关键字将 `JSON` 编码的映射作为单行插入。对于表中存在但在 JSON 插入语句中省略的列，请使用 `DEFAULT UNSET` 保留现有值。使用 `DEFAULT NULL` 可将 NULL 值写入省略的列的每一行，并覆盖现有值（收取标准写入费用）。`DEFAULT NULL` 是默认选项。

**示例**

```
INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678",
                                                 "name": "Russ",
                                                 "project": "NightFlight",
                                                 "region": "US",
                                                 "division": "Engineering",
                                                 "role": "IC",
                                                 "pay_scale": 3,
                                                 "vacation_hrs": 12.5,
                                                 "manager_id": "234-56-7890"}';
```

如果 JSON 数据包含重复键，Amazon Keyspaces 会存储键的最后一个值（类似于 Apache Cassandra）。在以下示例（重复键为 `id`）中，使用了值 `234-56-7890`。

**示例**

```
INSERT INTO "myGSGKeyspace".employees_tbl JSON '{"id":"012-34-5678",
                                                 "name": "Russ",
                                                 "project": "NightFlight",
                                                 "region": "US",
                                                 "division": "Engineering",
                                                 "role": "IC",
                                                 "pay_scale": 3,
                                                 "vacation_hrs": 12.5,
                                                 "id": "234-56-7890"}';
```