Files
dbx/docs/content/docs/sql-snippets.cn.mdx
T

79 lines
3.3 KiB
Plaintext

---
title: SQL 代码片段
description: 管理可复用 SQL 模板、触发键和可跳转占位符,并在编辑器补全中快速展开。
---
SQL 代码片段会作为编辑器补全候选出现。输入触发键后接受候选,DBX 会在光标处插入模板;模板中的占位符可以继续用 `Tab` 和 `Shift+Tab` 逐个填写。
## 管理代码片段
前往 **设置 → 代码片段**。每个片段包含:
| 字段 | 作用 |
| --- | --- |
| 标签 | 补全列表中显示的名称;留空时使用触发键。 |
| 触发键 | 用于匹配补全候选的前缀,必填,并且在当前片段列表中必须唯一。 |
| 状态 | 临时启用或停用片段,不需要删除模板。 |
| SQL 内容 | 接受补全后插入编辑器的模板正文。 |
你可以新增、编辑、启用、停用或删除片段。**恢复默认值**会把当前草稿替换为 DBX 内置片段;完成修改后点击设置窗口中的 **应用** 保存。
<Callout type="info">
DBX 自带 `sel`、`ins`、`upd`、`cte`、`join` 等常用片段。部分内置片段会根据当前数据库调整语法,例如选择合适的行数限制或 `ALTER TABLE` 写法;自定义片段则按原文插入。
</Callout>
## 在编辑器中展开
1. 在 SQL 编辑器中输入触发键,例如 `sel`。
2. 在补全列表中确认标签和正文预览。
3. 按 `Tab`、`Enter` 或点击候选接受补全。
4. 如果模板包含占位符,继续按 `Tab` 前进,按 `Shift+Tab` 返回。
如果补全列表没有出现,请确认片段已启用、触发键与当前输入匹配,并检查编辑器自动补全是否被关闭。
## 占位符语法
DBX 使用 CodeMirror 代码片段语法:
| 写法 | 作用 |
| --- | --- |
| `${}` | 创建一个空的可编辑位置。 |
| `${name}` | 创建默认文本为 `name` 的可编辑位置;同名位置会同步编辑。 |
| `${1}` | 使用数字显式指定跳转顺序。 |
| `${1:defaultText}` | 指定跳转顺序并提供默认文本。 |
| `#{name}` | `${name}` 的等价写法。 |
数字占位符按照编号跳转;没有数字时按照模板中的出现顺序跳转。要插入不会被识别为占位符的字面量花括号,请在花括号前加反斜杠。
例如:
```sql
SELECT ${1:columns}
FROM ${2:table}
WHERE ${3:condition}
ORDER BY ${4:column};
```
重复使用同一个占位符可以同时修改多个位置:
```sql
SELECT ${1:column}, COUNT(*) AS cnt
FROM ${2:table}
GROUP BY ${1:column};
```
## 保存、同步与安全
代码片段属于编辑器设置,会保存在当前 DBX 运行环境中。桌面版的[配置云同步](/cn/docs/cloud-sync)可以连同其他编辑器设置一起同步片段;[连接配置迁移](/cn/docs/config-export)只处理数据库连接,不包含代码片段。
片段只是生成 SQL,不会绕过数据库权限或 DBX 的生产保护。执行包含写入或 DDL 的模板前,仍应检查展开后的完整 SQL,并遵循[生产安全](/cn/docs/production-safety)建议。
<Cards>
<Card title="查询编辑器" href="/cn/docs/query-editor">
了解补全、执行范围、历史记录和 SQL 文件等编辑器能力。
</Card>
<Card title="快捷键" href="/cn/docs/keyboard-shortcuts">
查看接受补全、格式化和执行 SQL 的当前快捷键。
</Card>
</Cards>