有沒有一種方法可以在Python中顯式獲取sqlite3數據庫的鎖?如何在Python中鎖定sqlite3數據庫?
3
A
回答
4
明確地鎖定數據庫的方法是啓動一個事務如documentation解釋:
當數據庫被多個連接進行訪問,和所述過程中的一個修改數據庫,SQLite數據庫被鎖定直到交易完成。發起交易
的一種方法是使用connection as a context manager:
import sqlite3
con = sqlite3.connect(...)
...
with con:
# Database is locked here
還要注意,一些交易默認執行implictly:
默認情況下,sqlite3的模塊之前打開交易隱含數據修改語言(DML)語句(即INSERT/UPDATE/DELETE/REPLACE),並在非DML非查詢語句之前隱式地提交事務 之前所提)。
3
從sqlite的常見問題,"Can multiple applications or multiple instances of the same application access a single database file at the same time?":
多個進程可以同時打開同一個數據庫。 多個進程可以同時做一個SELECT。但是,只有 一個進程可以在 的任何時刻對數據庫進行更改。
無論是否使用with connection
結構,許多進程可以只有一個可以在任何給定時間寫入到數據庫中讀取。
0
我們可以使用多進程命令來鎖定數據庫的寫入和讀取過程。我正在使用以下命令並且它的工作正常。 從多處理進口鎖 l.Lock() l.acquire() 讀/寫DB l.release()
相關問題
- 1. Python的SQLITE3數據庫鎖定,QWidget的
- 2. 數據庫被鎖定-sqlite3
- 3. 錯誤:數據庫被鎖定在sqlite3
- 4. 如何等待sqlite3解鎖數據庫?
- 5. sqlite3異常數據庫被鎖定
- 6. sqlite3.OperationalError:數據庫被鎖定
- 7. 避免sqlite3的數據庫鎖定
- 8. SGE + sqlite3:錯誤:數據庫被鎖定
- 9. sqlite3 - iOS - 數據庫被鎖定
- 10. 新的sqlite3數據庫被鎖定
- 11. android sqlite3數據庫被鎖定
- 12. sqlite3:避免「數據庫鎖定」衝突
- 13. Rails:鎖定的數據庫? - sqlite3的:: BusyException:
- 14. 鎖定sqlite3數據庫文件下載
- 15. iphone-sqlite3數據庫鎖定異常
- 16. iPhone中的sqlite3數據庫被鎖定 - 如何避免?
- 17. Sqlite3和Python:處理鎖定的數據庫
- 18. 如何調試鎖定的sqlite3數據庫
- 19. 在Python中從sqlite3數據庫拉值
- 20. 在Python 2.5中備份sqlite3數據庫
- 21. Python中的SQLite:數據庫被鎖定
- 22. 從鎖定的SQLite3數據庫中讀取
- 23. sqlite3數據庫鎖定在多個插入
- 24. SQLITE3在iPhone給數據庫鎖定異常
- 25. Sqlite3錯誤:數據庫被鎖定在golang
- 26. 如何在python 3 for mac中使用SQLite3創建數據庫?
- 27. 如何在python中刪除sqlite3數據庫?
- 28. 填充sqlite3的Python中環數據庫
- 29. 鎖定數據庫
- 30. 數據庫鎖定
只是要清楚:如果我使用 '與CON' 把戲,難道我保證所有對該塊中的數據庫的讀寫操作都會一起發生? (也就是說,另一個線程不能改變我正在閱讀的內容)。 – 2012-01-12 01:01:11
我發佈了一個後續問題http://stackoverflow.com/questions/9070369/locking-a-sqlite3-database-in-python-re-asking-for-澄清 – 2012-01-30 20:52:59