我想用python-sqlite3打開chromium site數據(在〜/ .config/chromium/Default中),但是每次運行鉻時它都會被鎖定,這是可以理解的,因爲可以進行交易。有沒有辦法以只讀模式打開它,確保在鉻使用它時不會破壞數據庫的完整性?是否可以在只讀模式下打開一個鎖定的sqlite數據庫?
回答
我相信這取決於交易設置的鎖定。
http://www.sqlite.org/lockingv3.html#shared_lock http://www.sqlite.org/lang_transaction.html
SQLite的獨家交易鎖定讀取和寫入其中直接和延期交易,將仍允許讀者。
所以它確實取決於Chromium使用的交易。
Chromium長時間持有數據庫鎖嗎?呸!這根本不是一個好主意。不過,並非你錯...
你可以嘗試只複製數據庫文件(例如,與系統實用程序cp
),並使用該快照閱讀目的; SQLite將所有提交狀態保存在每個數據庫的單個文件中。是的,有可能看到部分事務,但是你絕對不會在Unix上出現鎖定問題,因爲SQLite絕對不使用強制鎖定。 (這可能不適用於Windows,因爲那裏有不同的鎖定方案。)
這不一定是鉻的錯。我發現[this](http://mail.python.org/pipermail/python-list/2009-July/1211171.html)有用的消息指出,pysqlite庫不提供所有的接口的sqlite功能,因爲它符合DB-API。所以可能是當我用pysqlite打開db時,我在讀寫模式下沒有說過。他指出APSW在啓動連接時使用SQLITE_OPEN_READONLY標誌。我現在檢查一下。 – ladaghini
- 1. 無法以只讀模式打開Sqlite數據庫
- 2. 從MyApplication打開SQLite數據庫 - 無法在讀/寫模式下打開
- 3. 是否可以在只讀模式下連接到內存中的sqlite數據庫?
- 4. 以只讀模式從python打開sqlite3數據庫
- 5. WAL模式下的Java SQLite:數據庫被鎖定
- 6. SQLite是否鎖定讀取數據庫文件?
- 7. 在exlusive模式下打開一個鎖定的文件
- 8. 如何檢查數據庫是否以只讀模式運行?
- 9. 閱讀時鎖定數據庫[Android] [SQLite]
- 10. 是否有可能使用SQLiteConnection庫檢查SQLite數據庫是否被鎖定
- 11. 確定SQLite 3數據庫是否爲只讀 - 不使用sqlite3_db_readonly()
- 12. 是否可以讀取和寫入文件只打開一次?
- 13. 可以鎖定SQLite數據庫嗎?如在一個不能打開外部並添加行到表?
- 14. WebDav - 文檔以只讀模式打開
- 15. 以只讀模式打開word文檔
- 16. SqlOpenHelper#onUpgrade(...)在數據庫以可讀方式打開時失敗
- 17. 在sqlite中鎖定SQLite數據庫admin
- 18. 如何在vba中打開一個只讀數據庫?
- 19. 是否可以使用SQLAlchemy將SQLite數據庫讀入內存?
- 20. 是否可以讀取鎖定文件?
- 21. 如何在不同模式下在同一個數據庫上打開兩個SQLite上下文?
- 22. 打開下載SQLite數據庫
- 23. SQLite數據庫被鎖定
- 24. Java - 鎖定SQLite數據庫
- 25. 是否可以將HSQLDB模式更改爲只讀模式?
- 26. 鎖定SQLite數據庫以便從c#讀取#
- 27. 我可以在只讀模式下打開導軌控制檯嗎?
- 28. 如果以只讀模式打開數據庫,是否會運行自動訪問宏?
- 29. 無法以讀取/寫入模式打開數據庫
- 30. 訪問數據庫打開爲只讀
+1:這是怎麼做_within_ SQLite。 –