

# 生成复杂操作
<a name="workbench.querybuilder.operationbuilder"></a>

NoSQL Workbench for Amazon DynamoDB 中的操作生成器提供了一个直观界面，您可以在其中执行复杂的数据层面操作。该界面包含对投影表达式和条件表达式的支持。生成操作后，您可以将其保存以供以后使用（最多可以保存 50 个操作）。然后，可以在**保存的操作**菜单中浏览常用数据层面操作的列表，然后使用它们自动填充和生成新操作。此外，您还可以选择使用多种语言为这些操作生成示例代码。

NoSQL Workbench 支持生成 [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) for DynamoDB 语句，允许使用与 SQL 兼容的查询语言与 DynamoDB 进行交互。NoSQL Workbench 还支持生成 DynamoDB CRUD API 操作。

要使用 NoSQL Workbench 生成操作，在左侧导航窗格中，选择**操作生成器**图标。

**Topics**
+ [生成 PartiQL 语句](workbench.querybuilder.partiql.md)
+ [生成 API 操作](workbench.querybuilder.operationbuilder.api.md)

# 生成 PartiQL 语句
<a name="workbench.querybuilder.partiql"></a>

要使用 NoSQL Workbench 生成 [PartiQL for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) 语句，请选择靠近 NoSQL Workbench UI 顶部的 **PartiQL 编辑器**。

您可以在操作生成器中生成以下 PartiQL 语句类型。

**Topics**
+ [单例语句](#workbench.querybuilder.partiql.single)
+ [事务](#workbench.querybuilder.partiql.transaction)
+ [批处理](#workbench.querybuilder.partiql.batch)

## 单例语句
<a name="workbench.querybuilder.partiql.single"></a>

要为 PartiQL 语句运行或生成代码，请执行以下操作。

1. 选择靠近窗口顶部的 **PartiQL 编辑器**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。

1. 如果您的语句使用参数：

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

## 事务
<a name="workbench.querybuilder.partiql.transaction"></a>

要为 PartiQL 事务运行或生成代码，请执行以下操作。

1. 从**更多操作**下拉列表中选择 **PartiQLTransaction**。

1. 选择**添加新语句**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。
**注意**  
同一个 PartiQL 事务请求不同时支持读取和写入操作。SELETE 语句不能与 INSERT、UPDATE 和 DELETE 语句在同一请求中。请参阅[使用 PartiQL for DynamoDB 执行事务](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.multiplestatements.transactions.html)以了解更多信息。

1. 如果您的语句使用参数

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要添加更多语句，请重复步骤 2 至 4。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

## 批处理
<a name="workbench.querybuilder.partiql.batch"></a>

要为 PartiQL 批处理运行或生成代码，请执行以下操作。

1. 从**更多操作**下拉列表中选择 **PartiQLBatch**。

1. 选择**添加新语句**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。
**注意**  
 同一个 PartiQL 批处理请求不同时支持读取和写入操作，这意味着 SELECT 语句不能与 INSERT、UPDATE 和 DELETE 语句位于同一请求中。不允许对同一项进行写入操作。与 BatchGetItem 操作一样，只支持单例读取操作。不支持扫描和查询操作。请参阅[使用 PartiQL for DynamoDB 运行批处理操作](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.multiplestatements.batching.html)以了解更多信息。

1. 如果您的语句使用参数：

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要添加更多语句，请重复步骤 2 至 4。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

# 生成 API 操作
<a name="workbench.querybuilder.operationbuilder.api"></a>

要使用 NoSQL Workbench 生成 DynamoDB CRUD API，请选择 NoSQL Workbench 用户界面左侧的**操作生成器**。

然后选择**打开**并选择一个连接。

您可以在操作生成器中执行以下操作：
+ [删除表](#workbench.querybuilder.operationbuilder.DeleteTable)
+ [创建表](#workbench.querybuilder.operationbuilder.CreateTable)
+ [更新表](#workbench.querybuilder.operationbuilder.UpdateTable)
+ [放置项目](#workbench.querybuilder.operationbuilder.Put)
+ [更新项目](#workbench.querybuilder.operationbuilder.update)
+ [删除项目](#workbench.querybuilder.operationbuilder.Delete)
+ [Query](#workbench.querybuilder.operationbuilder.Query)
+ [Scan](#workbench.querybuilder.operationbuilder.scan)
+ [事务处理获取项目](#workbench.querybuilder.operationbuilder.transactget)
+ [事务处理写入项目](#workbench.querybuilder.operationbuilder.transactwrite)

## 删除表
<a name="workbench.querybuilder.operationbuilder.DeleteTable"></a>

要运行 `Delete Table` 操作，请完成以下步骤。

1. 在**表**部分中找到要删除的表。

1. 从水平省略号菜单中选择**删除表**。

1. 输入**表名称**来确认您要删除该表。

1. 选择**删除**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[删除表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)。

## 删除 GSI
<a name="workbench.querybuilder.operationbuilder.DeleteGSI"></a>

要运行 `Delete GSI` 操作，请完成以下步骤。

1. 在**表**部分中找到要删除的表的 GSI。

1. 从水平省略号菜单中选择**删除 GSI**。

1. 输入 **GSI 名称**来确认您要删除该 GSI。

1. 选择**删除**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[删除表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)。

## 创建表
<a name="workbench.querybuilder.operationbuilder.CreateTable"></a>

要运行 `Create Table` 操作，请完成以下步骤。

1. 选择**表**部分旁边的 **\$1** 图标。

1. 输入所需的表名称。

1. 创建分区键。

1. 可选：创建排序键。

1. 要自定义容量设置，请取消选中**使用默认容量设置**旁边的复选框。
   + 现在，您可以选择**已预置**或**按需容量**。

     选中“已预置”后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。
   + 如果表当前设置为“按需”，您将无法指定预置吞吐量。
   + 如果您从“按需”切换到“已预置”吞吐量，则自动扩缩将自动应用于所有 GSI，其中，最小值：1，最大值：10；目标：70%。

1. 选择**跳过 GSI 并创建**可创建此表而不创建 GSI。或者，您可以选择**下一步**以创建 GSI 以及此新表。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[创建表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)。

## 创建 GSI
<a name="workbench.querybuilder.operationbuilder.CreateGSI"></a>

要运行 `Create GSI` 操作，请完成以下步骤。

1. 找到要添加 GSI 的表。

1. 从水平省略号菜单中，选择**创建 GSI**。

1. 在**索引名称**下为 GSI 命名。

1. 创建分区键。

1. 可选：创建排序键。

1. 从下拉列表中选择投影类型选项。

1. 选择**创建 GSI**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[创建表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)。

## 更新表
<a name="workbench.querybuilder.operationbuilder.UpdateTable"></a>

要使用 `Update Table` 操作更新表的容量设置，请执行以下步骤。

1. 找到您要更新容量设置的表。

1. 从水平省略号菜单中，选择**更新容量设置**。

1. 选择**已预置**或**按需容量**。

   选中**已预置**后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。

1. 选择**更新**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[更新表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)。

## 更新 GSI
<a name="workbench.querybuilder.operationbuilder.UpdateGSI"></a>

要使用 `Update Table` 操作更新 GSI 的容量设置，请执行以下步骤。

**注意**  
默认情况下，全局二级索引继承基表的容量设置。仅当基表采用已预置容量模式时，各个全局二级索引才能具有不同的容量模式。在预置模式表创建全局二级索引时，必须根据该索引的预期工作负载指定读取和写入容量单位。有关更多信息，请参阅 [全局二级索引的预调配吞吐量注意事项](GSI.md#GSI.ThroughputConsiderations)。

1. 找到您要更新容量设置的 GSI。

1. 从水平省略号菜单中，选择**更新容量设置**。

1. 现在，您可以选择**已预置**或**按需容量**。

   选中**已预置**后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。

1. 选择**更新**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[更新表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)。

## 放置项目
<a name="workbench.querybuilder.operationbuilder.Put"></a>

您可以使用 `Put Item` 操作创建项目。要为 `Put Item` 操作执行或生成代码，请执行以下操作。

1. 找到您要在其中创建项目的表。

1. 从**操作**下拉列表中，选择**创建项目**。

1. 输入分区键值。

1. 输入排序键值（如果存在）。

1. 如果要添加非键属性，请执行以下操作：

   1. 选择 **\$1 添加其他属性**。

   1. 指定**属性名称**、**类型**和**值**。

1. 如果必须满足条件表达式 `Put Item` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)。

## 更新项目
<a name="workbench.querybuilder.operationbuilder.update"></a>

要为 `Update Item` 操作执行或生成代码，请执行以下操作：

1. 找到您要在其中更新项目的表。

1. 选择项目。

1. 输入选定表达式的属性名称和属性值。

1. 如果要添加更多表达式，请在**更新表达式**下拉列表中选择另一个表达式，然后选择 **\$1** 图标。

1. 如果必须满足条件表达式 `Update Item` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)。

## 删除项目
<a name="workbench.querybuilder.operationbuilder.Delete"></a>

要运行 `Delete Item` 操作，请完成以下步骤。

1. 找到您要从中删除项目的表。

1. 选择项目。

1. 从**操作**下拉列表中，选择**删除项目**。

1. 选择**删除**以确认您要删除相应项目。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)。

## 重复项目
<a name="workbench.querybuilder.operationbuilder.Duplicate"></a>

您可以创建一个具有相同属性的新项目，从而复制项目。要复制项目，请执行以下操作。

1. 找到您要在其中复制项目的表。

1. 选择项目。

1. 从**操作**下拉列表中，选择**重复项目**。

1. 指定新的分区键。

1. 指定新的排序键（如果需要）。

1. 选择**运行**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)。

## 查询
<a name="workbench.querybuilder.operationbuilder.Query"></a>

要为 `Query` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 的顶部选择**查询**。

1. 指定分区键值。

1. 如果 `Query` 操作需要排序键，请执行以下操作：

   1. 选择**排序键**。

   1. 指定比较运算符和属性值。

1. 选择**查询**以运行此查询操作。如果需要更多选项，请选中**更多选项**复选框，然后继续执行以下步骤。

1. 如果并非所有属性都应与操作结果一起返回，请选择**投影表达式**。

1. 选择 **\$1** 图标。

1. 输入要与查询结果一起返回的属性。

1. 如果需要更多属性，请选择 **\$1**。

1. 如果必须满足条件表达式 `Query` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [Query](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html)。

## Scan
<a name="workbench.querybuilder.operationbuilder.scan"></a>

要为 `Scan` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 的顶部选择**扫描**。

1. 选择**扫描**按钮以执行此基本扫描操作。如果需要更多选项，请选中**更多选项**复选框，然后继续执行以下步骤。

1. 指定属性名称可筛选扫描结果。

1. 如果并非所有属性都应与操作结果一起返回，请选择**投影表达式**。

1. 如果必须满足条件表达式扫描操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

## TransactGetItems
<a name="workbench.querybuilder.operationbuilder.transactget"></a>

要为 `TransactGetItems` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 顶部的**更多操作**下拉列表中，选择 **TransactGetItems**。

1. 选择 **TransactGetItem** 旁边的 **\$1** 图标。

1. 指定分区键。

1. 指定排序键（如果需要）。

1. 选择**运行**可执行操作，选择**保存操作**可进行保存，或者选择**生成代码**可为操作生成代码。

有关事务的更多信息，请参阅 [Amazon DynamoDB Transactions](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。

## TransactWriteItems
<a name="workbench.querybuilder.operationbuilder.transactwrite"></a>

要为 `TransactWriteItems` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 顶部的**更多操作**下拉列表中，选择 **TransactWriteItems**。

1. 从**操作**下拉列表中选择一个操作。

1. 选择 **TransactWriteItem** 旁边的 **\$1** 图标。

1. 在**操作**下拉列表中，选择您要执行的操作。
   + 对于 `DeleteItem`，按照 [删除项目](#workbench.querybuilder.operationbuilder.Delete) 操作的说明操作。
   + 对于 `PutItem`，按照 [放置项目](#workbench.querybuilder.operationbuilder.Put) 操作的说明操作。
   + 对于 `UpdateItem`，按照 [更新项目](#workbench.querybuilder.operationbuilder.update) 操作的说明操作。

   要更改操作的顺序，请在左侧列表中选择一项操作，然后选择向上或向下箭头以在列表中将其上移或下移。

   要删除一项操作，请在列表中选择该操作，然后选择**删除**（垃圾桶）图标。

1. 选择**运行**可执行操作，选择**保存操作**可进行保存，或者选择**生成代码**可为操作生成代码。

有关事务的更多信息，请参阅 [Amazon DynamoDB Transactions](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。