# 取消执行

停止当前身份仍在运行的 SQL 查询。调用成功后，使用[查询执行状态](get-execution-status.md)确认该查询的状态。

```text
POST https://moi.matrixorigin.cn/newmoi/query/kill
```

## 调用前准备

准备个人访问令牌、工作区 ID，以及[执行 SQL](execute-sql.md)响应中的查询 ID。

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：查询所在的工作区 ID，通过 `X-Workspace-ID` Header 传递。
- `$QUERY_ID`：要取消的查询 ID。

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `query_id` | string | 是 | 要取消的查询 ID。 |

## 请求示例

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

## 成功响应

成功响应表示已完成取消请求并将该查询记录标记为 `killed`。使用[查询执行状态](get-execution-status.md)读取记录。

```json
{
  "code": 200,
  "data": null
}
```

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | integer | 成功时为 `200`。 |
| `data` | null | 此操作不返回数据。 |

## 错误响应

```json
{"code": 404, "message": "SQL 查询不存在"}
```

### 常见 HTTP 错误

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

* - HTTP 状态码
  - 常见原因
  - 建议操作
* - `400`
  - 请求体不是有效 JSON，或缺少 `query_id`。
  - 检查请求体和查询 ID。
* - `401`
  - 凭据缺失或无效。
  - 检查访问令牌。
* - `403`
  - 当前身份没有取消该查询的权限。
  - 使用创建该查询的身份，或联系管理员授权。
* - `404`
  - 查询 ID 不存在，或不属于当前身份。
  - 检查 `query_id`，并确认使用相同身份调用。
* - `500`
  - 查询无法取消，或服务端无法更新查询状态。
  - 记录错误信息后重试。
* - `503`
  - 当前角色的执行连接不可用。
  - 稍后重试。
```


## 后续操作

再次[查询执行状态](get-execution-status.md)，确认执行已停止。
