# 创建 SQL 保存记录

创建一条用于保存 SQL 内容及其版本的记录。成功后保存返回的 `workbook_id`，用于创建和管理版本。

```text
POST https://moi.matrixorigin.cn/newmoi/workbook/create
```

## 调用前准备

准备有创建 SQL 保存记录权限的个人访问令牌和目标工作区 ID。`$AI_STUDIO_API_KEY` 是个人访问令牌，用作 `X-API-Key` 请求头的值；`$WORKSPACE_ID` 是目标工作区 ID，用作 `X-Workspace-ID` 请求头的值。

下方示例中的 `$WORKBOOK_NAME` 是保存记录的名称。

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `name` | string | 是 | 保存记录的名称。 |

## 请求示例

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/workbook/create" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d "{
    \"name\": \"$WORKBOOK_NAME\"
  }"
```

## 成功响应

`data.workbook_id` 为新保存记录的 ID，`data.name` 为记录名称。保存 `workbook_id` 后，先[查看 SQL 保存记录的版本](list-workbook-versions.md)取得版本 ID；需要新增可编辑版本时，再[创建 SQL 草稿版本](create-workbook-draft.md)。

```json
{
  "code": 200,
  "data": {
    "workbook_id": "workbook-123",
    "name": "销售分析"
  }
}
```

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | integer | 成功时为 `200`。 |
| `data.workbook_id` | string | 新建 SQL 保存记录的 ID。 |
| `data.name` | string | 保存记录的名称。 |

## 错误响应

```json
{
  "code": 400,
  "message": "请求参数无效"
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 15 45 40

* - HTTP 状态码
  - 常见原因
  - 建议操作
* - `400`
  - 名称为空或不符合服务端要求。
  - 提供有效的 `name`。
* - `401`
  - 个人访问令牌缺失或无效。
  - 检查个人访问令牌和工作区 ID。
* - `403`
  - 当前访问凭据没有创建 SQL 保存记录的权限。
  - 使用有权限的访问凭据，或联系管理员授权。
* - `500`
  - 服务无法创建 SQL 保存记录。
  - 记录请求时间和错误信息后重试。
```

## 后续操作

记录 `data.workbook_id`。先[查看 SQL 保存记录的版本](list-workbook-versions.md)取得 `version_id`，再用两个 ID [查看已保存 SQL 的版本内容](get-workbook.md)。
