sqltools是vs code数据库操作默认起点,但需关闭sqltools.formatonexecute避免语法错误;postgresql连接勿填database字段;database client需设utf-8编码解决中文乱码;sqlite场景慎用vscode-database,推荐sqltools+原生sqlite3驱动。

VS Code 里直接看数据库、跑 SQL、查结果——可行,但插件选错就卡在连接失败、中文乱码、JSON 字段炸开、或者连 PostgreSQL 都认不出来的地步。
为什么 SQLTools 是默认起点,但必须关掉自动格式化
它支持 MySQL、PostgreSQL、SQLite、SQL Server 等主流驱动,界面干净,右键表就能 SELECT * LIMIT 100。问题出在默认开启的 sqltools.formatOnExecute:一旦你执行带换行或注释的 SQL,它会强行重排,导致 WITH RECURSIVE 或多语句脚本直接报错 ERROR: syntax error at or near "with"。
- 进设置搜
sqltools.formatOnExecute,设为false - 用
Shift+Alt+F手动格式化更安全 - 连接时别填
database字段再连 PostgreSQL —— 它会连到postgres系统库,而不是你指定的库,结果Table not found
Database Client 能连 Oracle 和达梦,但 Windows 上中文字段名显示成 ???
它底层用 JDBC,对国产数据库兼容性比多数插件强,但 Windows 默认编码是 GBK,而 Oracle/DM 返回 UTF-8 字段元数据时,插件没做转码,直接渲染就变问号。
- 打开插件配置,找到
database-client.connectionEncoding,设为UTF-8 - Oracle 连接串末尾加
?useUnicode=true&characterEncoding=UTF-8(MySQL 同理) - 达梦要额外装官方 JDBC 驱动,放插件目录下的
drivers文件夹,否则连上也查不出表结构
查 JSON 字段别用 vscode-database,SQLTools + SQLite 开箱即崩
这个插件对 SQLite 的 JSON1 扩展支持极差:json_extract(content, '$.name') 会返回空,不是语法错,是它把结果当普通字符串截断了;更糟的是,它把 json 类型字段全识别成 TEXT,点开预览直接显示原始字符串,不解析树形结构。
- SQLite 场景下,老老实实用
SQLTools+ 官方sqlite3CLI 驱动(不是 WebAssembly 版) - 执行前手动加
.mode json(如果 CLI 支持),或改用SELECT json_pretty(json_column)辅助调试 - 真要可视化 JSON,导出为 CSV 再拖进 Excel,比指望插件解析更稳
Query Monitor 在远程 MySQL 上查慢,其实是它默认每 5 秒轮询 information_schema.PROCESSLIST
它主打“实时监控”,但没提供关闭轮询的开关。高并发 MySQL 下,这请求本身就成了压力源,你自己执行的 SELECT 反而排队等锁,看着“正在运行”十几秒不动。
- 进插件设置,把
query-monitor.refreshInterval改成0(禁用自动刷新) - 手动点顶部
Refresh按钮查一次就够了 - 生产环境别开它连线上库,本地开发用完记得删连接配置,防止误点
插件不是越多越好,真正卡住你的往往不是功能缺,而是某个字段编码没设对、某条连接参数多写了斜杠、或者 JSON 字段被当成 TEXT 处理了——这些细节,文档里不写,报错里不提,只在你连不上、查不出、显示乱的时候默默等着你翻源码。











