# SQL 快捷操作

> 在查询编辑器中选中表名后，通过快捷键执行内置模板或自定义 SQL。

Source: https://dbxio.com/cn/docs/sql-quick-actions

Language: zh-CN

Relative links resolve against https://dbxio.com/cn/docs/sql-quick-actions.



SQL 快捷操作允许你在查询编辑器中先选中表名（或限定标识符），再按快捷键执行可复用的 SQL。

这与 [SQL 代码片段](/cn/docs/sql-snippets) 不同：代码片段通过补全把模板插入到光标处；快捷操作会根据当前选区生成 SQL，并走正常的执行流程。

## 管理快捷操作

打开 **设置 → 快捷键**，找到 **SQL 快捷操作** 区域。

### 内置模板

DBX 默认提供两条内置操作（列表中标记为 **内置模板**）：

| 操作         | 默认快捷键         | 可编辑    |
| ---------- | ------------- | ------ |
| **查前 N 条** | `Mod+Shift+1` | 快捷键与行数 |
| **统计行数**   | `Mod+Shift+2` | 仅快捷键   |

内置显示名随界面语言翻译，不可改文案；始终适用于全部数据库，不可删除（可关闭启用开关）。列表为空时会恢复默认；已有列表会按 id 补齐缺失的内置项（不覆盖你改过的同 id 配置）。

### 自定义操作

点击 **添加** 只能新建自定义 SQL 模板。每条自定义操作包含：

| 字段     | 作用                                     |
| ------ | -------------------------------------- |
| 显示名    | 设置列表中显示的名称。                            |
| 快捷键    | 触发该操作的按键组合。                            |
| 适用数据库  | 可留空表示全部库；或限定为若干数据库类型。                  |
| SQL 模板 | 自定义 `${table}` SQL。限定具体库后，可为每种库分别编辑正文。 |
| 状态     | 临时启用或停用，不需要删除模板。                       |

**添加** 流程不再提供「查前 N 条」操作类型——该能力由内置模板负责。在编辑对话框中保存后会立即生效；也可以在设置窗口点击 **应用** 统一保存。

SQL 快捷操作**仅在 SQL 编辑器中生效**（MySQL、PostgreSQL、Hive、ClickHouse 等）。Redis、MongoDB、Elasticsearch 等非 SQL 页不会触发。

建议使用包含 `Mod`（macOS 为 `Cmd`，Windows/Linux 为 `Ctrl`）的组合键，比单独使用 `Shift+字母` 更少干扰正常输入。

## 查前 N 条

内置 **查前 N 条** 会按当前连接的方言生成语句：

* MySQL / PostgreSQL / 未知 JDBC：`LIMIT N`
* SQL Server：`TOP N`
* Oracle / 达梦：`ROWNUM`
* DB2：`FETCH FIRST N ROWS ONLY`

只需配置行数和快捷键。未知 JDBC 连接同样使用 `LIMIT`，避免执行无行数限制的 `SELECT *`。

## 按库分别编辑 SQL

自定义操作限定为若干数据库类型后，SQL 模板旁会出现库类型下拉框：

* **切换库**会自动把当前文本框暂存为该库的覆盖（`sqlByDatabaseType`），再载入目标库（有覆盖用覆盖，否则用默认 `sql`）。
* 对话框 **保存** 只持久化默认 `sql` 与已编辑过的库覆盖，不会把当前正文写到所有已选库。
* **应用到全部选中库** 会把当前正文复制到每个已选库，并同步默认 `sql`。
* **取消勾选**某个库会删除其覆盖（再勾选不会复活旧正文）。切回 **全部数据库** 会清空全部覆盖，并保留当前所见正文作为唯一模板。

## 执行快捷操作

1. 在 SQL 编辑器中选中表名或限定标识符，例如 `orders` 或 `public.users`。也可以不选中，只把光标放在标识符上（会带上引号与 `schema.table`）。
2. 按下已配置的快捷键。
3. 对 SQL 模板，DBX 会把 `${table}` 替换为选区文本（若有按库正文则优先使用）；对「查前 N 条」，会按当前库类型生成 SQL 后执行。

示例模板：

```sql
SELECT COUNT(*) FROM ${table}
```

选中 `orders` 后，DBX 会执行：

```sql
SELECT COUNT(*) FROM orders
```

有选区时用选区作为 `${table}`；无选区时用光标处的限定标识符（含引号与 `schema.table`）。两者都没有则不触发。若当前连接不在该操作的适用数据库范围内，该快捷键在本标签页中也不会执行。

## 快捷键冲突

DBX 会检查快捷操作是否与以下快捷键冲突：

* 适用数据库范围有交集的其他快捷操作（「全部数据库」与任意范围都视为有交集）
* **设置 → 快捷键** 中的内置编辑器和全局快捷键

同库快捷键不可重复；跨库且范围不重叠时可以共用同一快捷键（例如仅 MySQL 与仅 SQL Server）。存在冲突时，设置界面会标红，并且在解决冲突前无法 **应用** 设置。

## 保存、同步与安全

快捷操作属于编辑器设置，保存在当前 DBX 运行环境中。桌面版的[配置云同步](/cn/docs/cloud-sync)可以连同其他编辑器设置一起同步；[连接配置迁移](/cn/docs/config-export)只处理数据库连接，不包含快捷操作。

快捷操作只是生成 SQL，不会绕过数据库权限或 DBX 的生产保护。执行包含写入或 DDL 的模板前，仍应检查展开后的完整 SQL，并遵循[生产安全](/cn/docs/production-safety)建议。

### [SQL 代码片段](/cn/docs/sql-snippets)

通过编辑器补全在光标处插入可复用模板。

### [快捷键](/cn/docs/keyboard-shortcuts)

查看内置编辑器快捷键与冲突规则。

### [查询编辑器](/cn/docs/query-editor)

了解执行范围、结果标签页和选区行为。

