我有一些sqlite version3的db3文件,我复制了一个实时运行的生产系统(我知道不好的sysadmin坏系统pipe理员)由于各种原因。 是否有一些sqlite命令我可以运行,将validation所有的数据可以读出这些文件(我不介意,如果需要一段时间)。
我正在考虑盗取一些转储所有数据的Perl,然后将其重新导入到新文件中。 我认为如果遇到损坏的数据,sqlite会抛出一个exception。 有没有更好的办法?
我是CentOS 5.3和sqlite-3.3.6-2
我想你想尝试一下:
pragma integrity_check;
从文档 :
该编译指示对整个数据库进行完整性检查。 integrity_check编译指示查找无序logging,缺less页面,格式错误的logging,缺less索引条目以及UNIQUE和NOT NULL约束错误。 如果integrity_check编译指示发现问题,则返回string(作为每行有一列的多行),用于描述问题。 […]
另请参阅PRAGMA quick_check命令,它执行PRAGMA integrity_check的大部分检查,但运行速度更快。