Sqlite3 recommends使用备份API进行备份,但也表明只要没有正在进行的事务,复制就可以安全进行:
制作可靠的SQLite数据库备份副本的最佳方法是利用SQLite库中的备份API。如果失败,只要没有任何进程在进行事务处理,就可以安全地复制SQLite数据库文件。
如果可以安全地执行此操作,我想使用复制数据库文件的方法。
NB。我了解到Backup API是首选选项,但是由于Sqlite3会通告原子提交,因此我相信这种方法是可行的,并且我想知道如何使这种方法尽可能安全。
可以使用哪种SQL命令或API完全锁定数据库,从而满足“只要没有正在进行的事务”要求?
尽管从技术上讲是交易,但可以使用空的排他交易(即BEGIN EXCLUSIVE;
,没有其他语句)吗?