- 补入库:server/internal/db/dump.go、redis 分页/扫描预算测试、opsxdb-mcp main_test、 packages/opsxdb-mcp package-lock、docs 审计与对比文档等 37 个新文件 - 含结构扁平化进行中的 80 处修改与 155 处旧结构删除(server/ src/ src-tauri/ 为当前有效源) - 构建产物(bin/target/dist)与签名私钥仍按规则排除
4.5 KiB
SQL 工作台是日常使用率最高的界面,所有交互围绕「快」设计。
执行模型
- ⌘/Ctrl + Enter:执行光标所在的当前语句;有选区时执行选区;
- 不是「整页脚本」模式 —— 多条语句互不干扰,想跑哪句把光标放哪;
- Redis 连接共用同一编辑器,按行执行命令(见 Redis 工作台),不另开 CLI;
- 执行在会话上运行,连接断开后自动提示。
多 Tab 与分栏
- 每个查询一个 Tab,并行执行互不阻塞;
- 编辑器 / 结果区可拖动分栏,长查询时编辑器不被结果挤占;
- Tab 与布局持久化,重开应用保持原样。
对象树联动
库节点右键「新建查询」会把该库绑定到新标签。表右键可打开前 N 行(1–10000)、复制限定名、生成 SELECT / INSERT;模板打开在新查询中,不覆盖已有草稿。视图不提供 INSERT 模板。
执行未限定表名的 SQL 时,使用当前查询标签工具条选中的库;各标签独立保存库上下文。MySQL 系列与 SQL Server 执行 USE 库名 会先验证目标库,再切换该标签,脚本中的后续语句也使用新库。目标库不存在或无权限时保持原库不变,并停止该批次的后续语句。PostgreSQL 请通过工具条切换数据库;Redis 单机用 DB 选择器或 SELECT 0–SELECT 15,集群固定 DB0。
编辑器右键支持格式化选区或全文、注释切换、查找替换,以及复制纯文本或带连接摘要的 SQL。连接摘要不含账号密码。点击已加载元数据中的明确表名,可跳转到 DDL;无法唯一识别、别名或未加载对象会禁用跳转。
- 左侧对象树懒加载库 / 表 / 列;
- 点表名 = 查询前 100 行,自动生成对应 SQL;
- 展开表看列名与类型,写 SQL 时可对照。
查询历史
- 本地留存最近 200 条(不上传、不同步);
- 相同语句自动去重置顶 —— 历史即「最近用过的不同语句」,高频查询永远在第一条;
- 点击条目回填编辑器;悬停出现 ▶ 按钮,回填并直接重跑;
- 顶部过滤框支持按语句内容或连接名搜索;
- 条目显示时间、连接名、行数与耗时;失败的语句红色标出。
危险 SQL 防护
执行以下语句前会弹确认框:
| 类型 | 规则 |
|---|---|
| 删除对象 | DROP / TRUNCATE |
| 全表更新 | 无 WHERE 的 UPDATE / DELETE |
注意:确认框只拦「明确危险」的模式,不替代事务与备份习惯;生产库操作请配合审批流程。
快捷键
| 快捷键 | 动作 |
|---|---|
| ⌘/Ctrl + Enter | 执行当前语句 / 选区 |
| 双击结果单元格 | 复制单元格内容 |
| Esc | 关闭弹层 / 取消确认 |
按对象浏览结构
关系库按能力显示「表、视图、存储过程、函数」。展开表可浏览字段,并按需展开索引、外键、触发器;视图可展开字段。元数据分组支持右键刷新,具体对象支持复制名称、定义或详情;失败时可重试,未适配的引擎会明确说明。当前目录查询已接入 MySQL 系列、PostgreSQL 系列和 SQLite。
表右键的「查看结构」打开字段结构页,「查看 DDL」查看定义,「复制建表 / 视图 SQL」直接复制定义。SELECT / INSERT 模板在新查询中打开;清空、删除仍须危险确认。
Redis:SQL 工具条可切换单机的 DB0–DB15,展开左侧 DB 后可在该库内搜索;底部搜索框查询当前库。输入普通关键词自动按 *关键词* 包含匹配,完整同名 Key 优先显示;也可输入模式(如 user:*)。回车或点击搜索才会请求服务端,最多 20 次 SCAN(COUNT 200、最多返回 500 项),不会使用 KEYS 枚举浏览。SCAN 仍有开销;有限搜索无结果不等于不存在,当前暂不提供续扫。集群只有 DB0,左侧直接显示 Key,隐藏多余的库层级。
Key 树仅在有过期时间时显示 TTL;点开 Key 的底部详情可输入正整数秒保存 TTL,-1 设为永久。0 秒会立即删除 Key,界面要求使用明确的删除操作。
从 SQL 输入区执行 GET、HGETALL、TTL 等单键读取时也会打开键详情,可在底部查看并修改 TTL。
Redis 集群所有种子及集群公布的节点地址都需要从当前电脑可达。127.0.0.1:7001 connection refused 表示本机该端口拒绝连接;检查节点是否启动。若远程集群返回本机地址,应修正服务端 cluster-announce-ip/port 与端口映射。