在使用C/C++的sqlite3时,我了解到它有一个open-in-read-only模式选项,这对于避免意外的数据损坏非常方便.Python绑定中有这样的东西吗?
ant*_*an1 38
从Python 3.4.0开始,您可以使用以下方式以只读模式打开数据库:
db = sqlite3.connect('file:/path/to/database?mode=ro', uri=True)
Run Code Online (Sandbox Code Playgroud)
另请参阅文档.
小智 10
Python 2.x的解决方法:
fd = os.open(filename, os.O_RDONLY)
c = sqlite3.connect('/dev/fd/%d' % fd)
os.close(fd)
Run Code Online (Sandbox Code Playgroud)
不是posix,但可以在Linux,OS/X和大多数现代unix上使用.
正如@Chris 给出的链接所示,没有。但是 sqlite3 还有另一个包装器,它不太符合 PEP 249,并且将 sqlite3 包装得更紧密,吸收了引擎的新功能:https: //github.com/rogerbinns/apsw。该包装器确实支持以只读模式打开数据库,以及其他细节。
有点相关,请注意,您可以使用编译指示动态地启用/禁用修改:
pragma query_only = ON; -- disable changes
pragma query_only = OFF; -- enable changes
Run Code Online (Sandbox Code Playgroud)