当前位置: 首页 > news >正文

使用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. 验证导入结果:
    PRAGMA integrity_check;  -- 执行完整性校验
    SELECT count(*) FROM sqlite_master; -- 对比对象数量
    

三、高级技巧与注意事项

  1. 部分导出策略:

    • 遇到损坏表时单独导出其他表
    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';

相关文章:

  • 【笔记】与PyCharm官方沟通解决开发环境问题
  • 【Java的批量操作】
  • 一洽小程序接入说明
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究
  • NVM 安装与配置指南
  • 亿级核心表如何优雅扩展字段
  • 【QT】类A接收TCP数据并通过信号通知类B解析
  • 运行在华为云kubernetes应用接入APM服务
  • [Java实战] Docker 快速启动 Sentinel 控制台(二十八)
  • 园区无人机智能巡检项目方案
  • PDF处理控件Aspose.PDF教程:以编程方式将 PDF 导出为 JPG
  • React中使用ahooks处理业务场景
  • 使用 React PDF 构建 React.js PDF 查看器的指南
  • [特殊字符] React Fiber架构与Vue设计哲学撕逼实录
  • React+TypeScript多步骤表单:告别表单地狱的现代解决方案
  • cplex12.9 安装教程以及下载
  • 33、魔法防御术——React 19 安全攻防实战
  • React的合成事件(SyntheticEventt)
  • React TS中如何化简DOM事件的定义
  • React 第四十四节Router中 usefetcher的使用详解及注意事项
  • 深圳南山法院回应“执行款未到账”:张核子公司申请的执行异议成立
  • 山西持续高温:阳城地表温度72.9℃破纪录,明日局部地区仍将超40℃
  • 中疾控专家:新冠感染的临床严重性未发生显著变化
  • 俄罗斯哈巴罗夫斯克市首次举办“俄中论坛”
  • 上海浦江游览南拓新航线首航,途经前滩、世博文化公园等景点
  • 脱欧后首次英欧峰会召开前夕,双方却因渔业和青年流动议题僵住了