使用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';
相关推荐
百锦再5 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
kangzerun5 天前
SQLiteManager:一个优雅的Qt SQLite数据库操作类
数据库·qt·sqlite
用户5757303346245 天前
AIGC 时代数据库革命:告别手写 SQL,用自然语言驾驭 SQLite
sqlite
GDAL6 天前
better-sqlite3 深度教程:为什么它比 node‑sqlite3 更好、怎么用、什么时候不该用
sqlite·better-sqlite3
GDAL7 天前
SQLite 与 MySQL 性能深度对比:场景决定最优解
数据库·mysql·sqlite
钱彬 (Qian Bin)8 天前
FastAPI的Alembic踩坑记录:缺失历史迁移脚本如何保留数据重建版本控制
sqlite·fastapi·数据库迁移·alembic
qq_454245039 天前
GraphMindStudio 数据操作层解析:基于 SQLite 的封装与自动化存储
sqlite·c#
喵手9 天前
Python爬虫实战:Boss直聘职位数据采集实战 - Playwright + 结构化解析完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·sqlite·爬虫实战·playwright·boss直聘职位数据采集·结构化解析
GDAL10 天前
SQLite 的适用场景与选型指南:它不是轻量 MySQL,而是「文件的升级版」
数据库·mysql·sqlite
布局呆星10 天前
Python 入门:FastAPI + SQLite3 + Requests 基础教学
python·sqlite·fastapi