在使用 C/C++ 中的 sqlite3 时,我了解到它有一个以只读方式打开的模式选项,这对于避免意外的数据损坏非常方便。Python绑定中有这样的东西吗?
问问题
21221 次
4 回答
63
从 Python 3.4.0 开始,您可以使用以下命令以只读模式打开数据库:
db = sqlite3.connect('file:/path/to/database?mode=ro', uri=True)
另请参阅文档。
于 2014-02-15T07:33:59.573 回答
17
Python 2.x 的解决方法:
fd = os.open(filename, os.O_RDONLY)
c = sqlite3.connect('/dev/fd/%d' % fd)
os.close(fd)
不是 posix,但可在 Linux、OS/X 和大多数现代 unix 上使用。
于 2015-02-03T15:36:56.537 回答
9
有点相关,请注意,您可以使用编译指示动态启用/禁用修改:
pragma query_only = ON; -- disable changes
pragma query_only = OFF; -- enable changes
于 2018-04-03T12:59:01.950 回答
4
正如@Chris 给出的链接,没有。但是还有另一个 sqlite3 包装器,它不太符合 PEP 249,并且更紧密地包装了 sqlite3,吸收了引擎的新功能:http ://code.google.com/p/apsw/ 。该包装器确实支持以只读模式打开数据库,以及其他细节。
于 2012-04-18T09:06:01.917 回答