sqltools连接postgresql需先安装主扩展及sqltools postgresql driver驱动,配置连接时注意端口5432、数据库名大小写及用户权限,执行语句用ctrl+alt+r而非ctrl+enter,并确保vscode文件编码为utf-8。

直接在 VSCode 里写 SQL,不装对插件就等于裸奔——语法没高亮、补全靠猜、执行要切窗口、结果还得另存打开。核心问题不是“有没有工具”,而是选哪个、怎么配、哪些坑必须绕开。
SQLTools 怎么连上 PostgreSQL 却提示 driver not found
这是最常卡住的第一步:安装了 SQLTools 主体,但没装对应驱动。它本身不带任何数据库协议实现,所有连接能力都靠独立的 Driver 扩展提供。
- PostgreSQL 必须额外安装
SQLTools PostgreSQL Driver(搜@tag:sqltools-driver可列出全部) - MySQL 需装
SQLTools MySQL Driver,SQL Server 同理 - 驱动安装后需重启 VSCode,否则连接向导里选不到对应类型
- 如果用 M1/M2 Mac 连 PostgreSQL,驱动可能因 libpq 版本不兼容报错;此时改用
PostgreSQL by Chris Kolkman插件更稳,它自带二进制依赖
为什么 SELECT * FROM users; 执行后结果是乱码表格或根本没反应
常见于连接配置填错端口、数据库名大小写不一致,或权限不足导致连接成功但查询被拒。SQLTools 默认不报详细错误,只静默失败。
- 检查连接配置中的
database字段是否和实际 DB 名完全一致(PostgreSQL 默认区分大小写,MySQL 在 Windows 下不区分) - 确认用户有
CONNECT权限且对目标 schema 有USAGE和SELECT - 右键执行前,确保光标在完整语句内(不能跨行选中,也不能停在注释里)
- 结果面板默认在编辑器底部,若看不到,按
Ctrl+Shift+P输入View: Toggle Panel唤出
想格式化 SQL 但 Prettier 总把 WHERE 换行搞得很丑
VSCode 自带的 SQL 格式化能力极弱,Prettier 默认不支持 SQL;强行启用会导致缩进错乱、关键字大小写混乱。
- 别用
Prettier格式化 .sql 文件,它压根没 SQL 解析器 - 改用专用扩展:
SQL Formatter(by shengchen)或vscode-sql-formatter,支持自定义规则如keywordCase、linesBetweenQueries - 在
settings.json中显式绑定:"files.associations": {"*.sql": "sql"},再设"editor.defaultFormatter": "shengchen.vscode-sql-formatter" - 如果团队用 dbt 或 Spark SQL,注意这些方言关键词(如
REF()、LATERAL VIEW)需在 formatter 配置里手动加到reservedKeywords
Database Client 和 SQLTools 该选哪个
不是功能强弱问题,是工作流匹配度问题。Database Client 把连接配置存成 JSON 文件,SQLTools 存在本地加密存储里。
- 需要把连接信息提交 Git(比如 dev/staging 环境共享)、做 CI 集成或审计追踪 → 选
Database Client,它的connections.json可版本控制 - 连接含生产密码、不想留明文、或频繁切换不同云厂商 RDS 实例 → 选
SQLTools,凭据存在 VSCode Secret Storage,且支持 SSH 隧道配置嵌套 - Database Client 的内联执行(
Cmd+Enter)响应更快,适合高频小查询;SQLTools 的表结构浏览更细致,支持右键生成 DDL - 两者都不支持实时数据变更监听(比如监听某张表 INSERT),这得靠外部工具或自己写 pg_notify 脚本
真正容易被忽略的点是:所有这些插件执行的都是客户端直连,没有中间代理层。一旦涉及跨防火墙、跳板机、K8s 内网服务,就得提前配好 SSH 隧道或 port-forward,插件本身不会帮你建连接通道。











