使用SQLite Studio导出/导入SQL修复损坏的数据库

使用SQLite Studio导出/导入SQL修复损坏的数据库

使用Zotero时遇到了数据库损坏,在软件中寸步难行,遂尝试修复数据库。

一、SQLite Studio简介

SQLite Studio是一款专为SQLite数据库设计的免费开源工具,支持Windows/macOS/Linux。相较于其他数据库管理工具,它具备以下核心优势:

  • 可视化操作:无需记忆复杂命令即可完成数据库管理
  • SQL脚本支持:可执行高级查询与批量操作
  • 数据导出/导入:支持CSV/JSON/SQL等多种格式
  • 跨平台兼容性:统一的操作体验适配各类系统
  • 轻量化设计:仅需15MB安装空间即可运行

官网地址
GitHub地址

本文介绍借助该软件导出.sqlite数据库到.sql文件,再重新导入为新的.sqlite数据库的方法(以解决原数据库损坏问题)。

二、修复数据库操作流程

步骤1:导出原始数据库

  1. 启动SQLite Studio

  2. 连接数据库:

    • 点击菜单栏【数据库】→【添加数据库】
    • 选择损坏的.sqlite文件→【OK】
  3. 执行全库导出:

    • 右键单击数据库→【导出数据库】,在弹出的对话框中选择"全选"→Next;
  4. 配置导出参数:

    • 勾选"Add "IF NOT EXISTS" clause to "CREATE" statement"和"在"CREATE"语句前生成"DROP IF EXISTS"语句"
    • 设置编码为UTF-8

      最后点击"Finish"完成导出。

步骤2:创建新数据库

  1. 新建空白数据库:
    • 【数据库】→【添加数据库】
    • 指定保存路径→设置Page Size为4096(推荐)
  2. 执行SQL导入:
    • 右键单击新建的数据库→从文件执行SQL
    • 打开导出的.sql文件→点击执行按钮

      在弹出的对话框中选择.sql文件,并选择正确的编码,勾选"跳过失败的SQL语句":

便会开始导入:

  1. 验证导入结果:

    sql 复制代码
    PRAGMA integrity_check;  -- 执行完整性校验
    SELECT count(*) FROM sqlite_master; -- 对比对象数量

三、高级技巧与注意事项

  1. 部分导出策略:

    • 遇到损坏表时单独导出其他表
    sql 复制代码
    ATTACH 'corrupt.db' AS old;
    CREATE TABLE new.users AS SELECT * FROM old.users;
  2. 大文件优化方案:

    • 使用事务包裹INSERT语句
    • 分批次执行(每10万条提交一次)
  3. 常见错误处理:

    • 出现"database disk image is malformed"时:
      1. 尝试.recover命令
      2. 使用sqlite3 corrupt.db ".output dump.sql" ".dump"
    • 编码错误时添加PRAGMA encoding='UTF-8';
相关推荐
言之。1 天前
深入解析Django重定向机制
数据库·django·sqlite
子兮曰1 天前
🔥告别ORM臃肿!用Bun.js原生SQLite打造极致轻量级数据库层
前端·sqlite·bun
言之。3 天前
Django get_or_create 方法详解
数据库·django·sqlite
言之。4 天前
Django REST framework:SimpleRouter 使用指南
python·django·sqlite
Lilixxs4 天前
VBA 中使用 ADODB 操作 SQLite 插入中文乱码问题
数据库·中间件·sqlite·乱码·vba·odbc·adodb
EndingCoder5 天前
数据库集成:使用 SQLite 与 Electron
数据库·electron·sqlite·前端框架·node.js
言之。5 天前
Django全局异常处理全攻略
python·django·sqlite
言之。5 天前
Django REST Framework Serializer 进阶教程
python·django·sqlite
Darenm1115 天前
SQLite数据库
数据库·sqlite