首先到 Sqlite官网上下载 sqlite.exe文件https://www.sqlite.org/download.html 选择Precompiled Binaries for Windows 下面 sqlite-tools开头的.zip 文件
D:\Tools\RepairTool>./sqlite3.exe 1.db
此时进入了sqlite命令行环境
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit
由于数据库文件损坏,所以sqlite自动将tmp.sql最后一行加上了一句Rollback
,因此我们需要手动修改tmp.sql
文件,将最后一行的Rollback
改为Commit;
。
D:\Tools\RepairTool>./sqlite3.exe 2.db
sqlite>.read tmp.sql
sqlite>.quit
大功告成!
@echo off
REM 创建一个临时文件来存储SQL dump
if not exist tmp.sql (
echo Creating tmp.sql for SQL dump...
type nul > tmp.sql
)
REM 打开第一个数据库并导出结构到tmp.sql
echo Opening database 1.db and dumping structure to tmp.sql...
sqlite3.exe 1.db ".output tmp.sql" ".dump" ".quit"
REM 检查tmp.sql是否成功生成
if not exist tmp.sql (
echo Error: tmp.sql was not created.
goto :eof
)
REM 打开第二个数据库并导入之前导出的结构
echo Opening database 2.db and reading from tmp.sql...
sqlite3.exe 2.db ".read tmp.sql" ".quit"
REM 清理临时文件
echo Cleaning up temporary files...
del tmp.sql
echo Done.
echo Press any key to exit...
pause
保存上面两个水平线中间内容到.bat文件,并把.bat文件放到sqlite3.exe文件同目录,修改要修复的数据库名称为1.db,双击运行保存好的.bat文件,执行完成后,会将修复后的文件保存成该目录下2.db文件
作者:ck123pm
链接:https://www.jianshu.com/p/d2c53d654e4a
来源:简书
版权所有:有信心——uxinxin 我的个人网站欢迎常来!手机版(新站开启,请多多关照) 豫ICP备12017930号-1
豫公网安备 41910102000493号