24 我有一些sqlite version3 db3文件,出于各种原因,我从一个正在运行的生产系统(我知道sysadmin不好,sysadmin不好)中复制了这些文件。我是否可以运行一些sqlite命令,以验证是否可以从这些文件中读取所有数据(我不介意是否需要一段时间)。 我正在考虑破解一些perl,将所有数据转储出去,然后将其重新导入到新文件中。我认为,如果sqlite遇到损坏的数据,它将抛出异常。有没有更好的办法? 我是CentOS 5.3和sqlite-3.3.6-2 linux database sql sqlite — 拟南芥 source
34 我认为您想尝试: pragma integrity_check; 从文档中: 该编译指示对整个数据库进行完整性检查。integrity_check杂注查找乱序记录,缺少页面,格式错误的记录,缺少索引条目以及UNIQUE和NOT NULL约束错误。如果integration_check编译指示发现问题,则返回描述问题的字符串(多行,每行一行)。[...] 另请参阅PRAGMA quick_check命令,该命令执行PRAGMA完整性检查的大部分检查,但运行速度更快。 — Hernan43 source 3 另请参见sqlite.org/faq.html#q21 — 泰迪