int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb);
如果在所有数据库连接关闭后(无论是通过使用SQLITE_FCNTL_PERSIST_WAL文件控制还是因为最后一个打开数据库的进程在没有调用sqlite3_close()的情况下退出)磁盘上仍然存在WAL 文件,并且随后在该数据库和WAL 文件上打开了一个新的连接,则sqlite3_snapshot_open()接口将只能打开添加到WAL 文件的最后一个事务,即使WAL 文件包含其他有效的事务。
此函数尝试扫描与数据库句柄 db 的数据库 zDb 关联的 WAL 文件,并使所有有效快照可供 sqlite3_snapshot_open() 使用。如果数据库上已经存在读取事务,或者数据库不是 WAL 模式数据库,则这是一个错误。
如果成功则返回 SQLITE_OK,否则返回 SQLite 错误代码。
仅当 SQLite 使用SQLITE_ENABLE_SNAPSHOT选项编译时,此接口才可用。