是否可以在只读模式下打开一个锁定的sqlite数据库?

时间:2011-10-22 06:05:25

标签: python database sqlite

我想用python-sqlite3打开铬站点数据(在〜/ .config / chromium / Default中),但是当chrome运行时它会被锁定,这是可以理解的,因为可以进行交易。有没有办法以只读模式打开它,确保在使用它时我不能破坏数据库的完整性?

2 个答案:

答案 0 :(得分:8)

我认为这取决于交易设置的锁定。

http://www.sqlite.org/lockingv3.html#shared_lock http://www.sqlite.org/lang_transaction.html

SQLite独占事务锁定读取和写入,其中立即和延迟事务仍将允许读者。

所以它真的取决于Chromium使用的交易。

答案 1 :(得分:3)

Chromium长时间持有数据库锁吗?呸!这根本不是一个好主意。不过,不是你的错误......

您可以尝试仅复制数据库文件(例如,使用系统实用程序cp)并使用该快照进行读取; SQLite将其所有提交状态保存在每个数据库的单个文件中。是的,有可能看到部分事务,但你肯定不会在Unix上遇到锁定问题,因为SQLite绝对不使用强制锁定。 (由于那里的锁定方案不同,这可能不适用于Windows。)