使用SQLite Studio導出/導入SQL修復損壞的數據庫
使用Zotero時遇到了數據庫損壞,在軟件中寸步難行,遂嘗試修復數據庫。
一、SQLite Studio簡介
SQLite Studio是一款專為SQLite數據庫設計的免費開源工具,支持Windows/macOS/Linux。相較于其他數據庫管理工具,它具備以下核心優勢:
- 可視化操作:無需記憶復雜命令即可完成數據庫管理
- SQL腳本支持:可執行高級查詢與批量操作
- 數據導出/導入:支持CSV/JSON/SQL等多種格式
- 跨平臺兼容性:統一的操作體驗適配各類系統
- 輕量化設計:僅需15MB安裝空間即可運行
官網地址
GitHub地址
本文介紹借助該軟件導出.sqlite數據庫到.sql文件,再重新導入為新的.sqlite數據庫的方法(以解決原數據庫損壞問題)。
二、修復數據庫操作流程
步驟1:導出原始數據庫
-
啟動SQLite Studio
-
連接數據庫:
- 點擊菜單欄【數據庫】→【添加數據庫】
- 選擇損壞的.sqlite文件→【OK】
-
執行全庫導出:
- 右鍵單擊數據庫→【導出數據庫】,在彈出的對話框中選擇“全選”→Next;
- 右鍵單擊數據庫→【導出數據庫】,在彈出的對話框中選擇“全選”→Next;
-
配置導出參數:
- 勾選"Add “IF NOT EXISTS” clause to “CREATE” statement"和"在“CREATE”語句前生成“DROP IF EXISTS”語句"
- 設置編碼為UTF-8
最后點擊“Finish”完成導出。
步驟2:創建新數據庫
- 新建空白數據庫:
- 【數據庫】→【添加數據庫】
- 指定保存路徑→設置Page Size為4096(推薦)
- 執行SQL導入:
- 右鍵單擊新建的數據庫→從文件執行SQL
- 打開導出的.sql文件→點擊執行按鈕
在彈出的對話框中選擇.sql文件,并選擇正確的編碼,勾選“跳過失敗的SQL語句”:
便會開始導入:
- 驗證導入結果:
PRAGMA integrity_check; -- 執行完整性校驗 SELECT count(*) FROM sqlite_master; -- 對比對象數量
三、高級技巧與注意事項
-
部分導出策略:
- 遇到損壞表時單獨導出其他表
ATTACH 'corrupt.db' AS old; CREATE TABLE new.users AS SELECT * FROM old.users;
-
大文件優化方案:
- 使用事務包裹INSERT語句
- 分批次執行(每10萬條提交一次)
-
常見錯誤處理:
- 出現"database disk image is malformed"時:
- 嘗試
.recover
命令 - 使用
sqlite3 corrupt.db ".output dump.sql" ".dump"
- 嘗試
- 編碼錯誤時添加
PRAGMA encoding='UTF-8';
- 出現"database disk image is malformed"時: