在使用C/C++中的sqlite3时,我了解到它有一个以只读模式打开的选项,这对于避免意外的数据损坏非常方便。Python绑定中有这样的选项吗?
yzxexxkh1#
从Python 3.4.0开始,您可以使用以下命令以只读模式打开数据库:
db = sqlite3.connect('file:/path/to/database?mode=ro', uri=True)
另请参见文档。
nlejzf6q2#
Python 2.x的解决方法:
fd = os.open(filename, os.O_RDONLY) c = sqlite3.connect('/dev/fd/%d' % fd) os.close(fd)
不是posix,但在Linux、OS/X和大多数现代unixes上可用。
new9mtju3#
有些相关,请注意,您可以使用杂注动态地启用/禁用修改:
pragma query_only = ON; -- disable changes pragma query_only = OFF; -- enable changes
pxq42qpu4#
正如@Chris给出的链接所示,没有。但是sqlite3有另一个 Package 器,它不太符合PEP 249,并且更紧密地 Package 了sqlite3,吸收了引擎的新特性:https://github.com/rogerbinns/apsw。该 Package 器确实支持以只读模式打开数据库,还有其他一些细节。
4条答案
按热度按时间yzxexxkh1#
从Python 3.4.0开始,您可以使用以下命令以只读模式打开数据库:
另请参见文档。
nlejzf6q2#
Python 2.x的解决方法:
不是posix,但在Linux、OS/X和大多数现代unixes上可用。
new9mtju3#
有些相关,请注意,您可以使用杂注动态地启用/禁用修改:
pxq42qpu4#
正如@Chris给出的链接所示,没有。但是sqlite3有另一个 Package 器,它不太符合PEP 249,并且更紧密地 Package 了sqlite3,吸收了引擎的新特性:https://github.com/rogerbinns/apsw。该 Package 器确实支持以只读模式打开数据库,还有其他一些细节。