python - 确定 sqlite3 数据库是否为只读

标签 python sqlite

我想打开一个 sqlite3 数据库,并立即检查它是否以只读方式打开。因为我知道我需要写入它,所以我想在启动时立即返回一个错误,而不必等到程序第一次尝试写入时再返回。

我看到有一个sqlite3 C API function sqlite3_db_readonly() .是否可以从 Python API 访问此函数?或者是否有其他方法可以通过 Python API 检查数据库是否为只读?

最佳答案

除了提到的其他可能性之外,您可以尝试写入它。例如,如果数据库的 user_version 为 0(除非您更改它,否则它将为 0),发出 pragma user_version=0;。如果数据库是可写的,这将没有效果,但如果数据库是只读的,则会导致错误。

关于python - 确定 sqlite3 数据库是否为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691252/

相关文章:

python - Python:自动重新连接网络摄像机

python - 张量板 - tensorflow.python.framework.errors_impl.NotFoundError :

.net - 从 .NET 与 SQLite 对话的最佳/最简单方法是什么?

swift - NSInternalInconsistencyException',原因 : 'Could not load NIB in bundle while fetching 500+ records from the address book database

python - sqlite3 : I want to select rows based on a list of IDs from a different table

python - 将列表元素添加到字典值

python - 在 python 中返回了错误的列表

python - 通过不区分大小写的列表进行 SQLAlchemy 查询

sqlite - sqlite_master 中的 name 和 tbl_name 有什么区别?

java - 在 Gradle Java 项目中使用 Sqlite JDBC 驱动程序