吾知网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6886|回复: 0
打印 上一主题 下一主题

sqlite关于The database disk image is malformed问题的解决

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-4 11:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

相关博文原址:http://www.cnblogs.com/iguor/archive/2012/08/23/2653442.html

最近被sqlite数据损坏的问题折磨的不行,今天终于找到解决方法了,先开心一小下database disk image is malformed问题的解决" title="sqlite关于The database disk image is malformed问题的解决" style="border: 0px; list-style: none;">。

step1:下载一个sqlite3.exe软件

step2:开始->运行->cmd

       输入:

       sqlite3 old.db(注:损坏的db文件)
       .output tmp.sql
       .dump
       .quit

step3: 由于损坏的数据库dump成sql之后,最后一行变成了ROLLBACK;这里我又去找了一种软件叫做

      “emeditor”,用emeditor把ROLLBACK;改成COMMIT;

step4::好了,现在可以读取数据到新的db了,在cmd界面输入:
       sqlite3 new.db
       .read tmp.sql
       .quit
database disk image is malformed问题的解决" title="sqlite关于The database disk image is malformed问题的解决" style="border: 0px; list-style: none;">问题解决了,new.db中就是恢复好的数据了,有点小不爽的是里面的数据都是重复的database disk image is malformed问题的解决" title="sqlite关于The database disk image is malformed问题的解决" style="border: 0px; list-style: none;">。


ok,现在可以解决重复记录的问题了,我的方法有点笨,我新建了一个与new结构相同的表new1,然后通过sql语句把new中数据复制到new1中,然后删除new。下面的我用到的sql语句:insert into new1 select distinct * from new;


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|吾知网 ( 粤ICP备13013563号-1 )

GMT+8, 2024-11-22 05:55 , Processed in 1.109375 second(s), 8 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表