使用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';
相关推荐
患得患失9491 天前
【Django DRF】一篇文章总结Django DRF框架
数据库·django·sqlite
kingwebo'sZone1 天前
sqlite的拼接字段的方法(sqlite没有convert函数)
java·数据库·sqlite
simple_whu1 天前
使用SQLite Expert个人版VACUUM功能修复数据库
数据库·sqlite
try again!1 天前
MqSQL
数据库·sqlite
5172 天前
Django学习
学习·django·sqlite
患得患失9492 天前
【Django ORM】三万字了解Django ORM的基本概念和基本使用
python·django·sqlite
什么都想学的阿超3 天前
14【高级指南】Django部署最佳实践:从开发到生产的全流程解析
数据库·django·sqlite
爱吃面条的猿3 天前
springboot项目部署 国产芯片 碰到的一个问题(sqlite)
spring boot·后端·sqlite
煤灰2423 天前
简单的基于sqlite的服务器和客户端实现
服务器·sqlite