SQLite数据库文件路径必须是绝对路径,SQLTools插件仅支持绝对路径且driver和dialect均须设为“sqlite”,表名大小写敏感时需用双引号包裹,写操作失败多因权限不足或文件被占用。

SQLite数据库文件路径必须是绝对路径
VSCode本身不内置数据库连接功能,所谓“连接SQLite”,实际依赖扩展(如 SQLTools + SQLTools SQLite Plugin)。而该插件在添加数据库时,database 字段只接受绝对路径——相对路径会静默失败,且无明确报错提示。
常见错误现象:SQLTools 显示“Connected”,但执行 SELECT * FROM sqlite_master; 返回空结果,或提示 no such table: sqlite_master。
- Windows 下确认路径格式为
C:\path\to\db.sqlite(双反斜杠)或C:/path/to/db.sqlite(正斜杠更稳妥) - macOS / Linux 下不能写成
~/Documents/app.db,要展开为/Users/username/Documents/app.db - 路径中含中文或空格不会导致失败,但建议先用英文路径验证基本连通性
SQLTools 配置中的 driver 和 dialect 必须匹配
SQLTools 支持多种数据库,SQLite 插件对应的是 sqlite driver,但配置项里容易误选成 sqlite3 或留空。一旦 mismatch,连接看似成功,实则底层未加载 SQLite 驱动,所有查询都走默认 fallback 逻辑,返回空或语法错误。
正确配置片段(在 VSCode 设置中搜索 sqltools.connections 编辑):
[
{
"name": "my-app-db",
"driver": "sqlite",
"dialect": "sqlite",
"database": "/absolute/path/to/app.db"
}
]-
driver和dialect都必须是sqlite(小写,无数字、无下划线) - 不要填
sqlite3—— 这是 Python 模块名,不是 SQLTools 的 driver 名 - 如果使用
SQLTools Beta版本,界面配置向导可能默认带出sqlite3,需手动改为sqlite
查询时表名大小写敏感且不自动加引号
SQLite 默认不区分表名大小写,但如果你建表时用了双引号(如 CREATE TABLE "User"),那表名就变成大小写敏感的标识符。而 SQLTools 的自动补全和点击跳转默认按小写生成语句,比如点开表后插入的是 SELECT * FROM user;,就会查不到数据。
- 执行前先运行
SELECT name FROM sqlite_master WHERE type='table';确认真实表名(含大小写和引号) - 若表名含大写字母或特殊字符,查询时必须用双引号包裹:
SELECT * FROM "User"; - 避免在建表时用双引号定义名称,除非有强需求;统一用小写下划线命名(
user_profile)最省事
无法保存修改或 INSERT 不生效?检查文件权限和 .sqlite 后缀
SQLite 是文件数据库,所有写操作最终落盘到文件。如果 VSCode 启动时没有足够权限写入该文件,或文件被其他进程(如另一个 SQLite GUI 工具、Node.js 应用)独占打开,INSERT/UPDATE 会静默失败,也不报错。
- 确认文件所在目录可写:右键文件 → 属性 → 权限(macOS/Linux)或 安全(Windows)
- 关闭其他可能访问该 DB 的程序,尤其是
DB Browser for SQLite、sqlite3CLI、或正在运行的本地开发服务器 - 确保文件扩展名是
.sqlite或.db;某些系统会把.sqlite3当作未知类型并限制写入 - 执行写操作后,可用
SELECT last_insert_rowid();或查表行数变化来验证是否真正写入
SQLite 的“连接”本质是文件读写,所有问题几乎都卡在路径、权限、命名约定这三处。插件 UI 看似图形化,底层仍高度依赖你对 SQLite 文件行为的理解。


















