我遇到了一个关于sqlite3的奇怪问题。我使用open()方法获得了同一数据库文件的不同连接。连接1开始一个事务,连接2开始另一个事务,即更新一个表的几个记录。然后连接1提交事务,然后连接2提交它的事务。但是我发现连接2的更新命令永远不会实际更新数据库中的记录。在这个过程中没有抛出异常。我不知道为什么会出现这个问题。任何人都可以向我解释原因吗?同一个sqlite数据库的不同连接可以同时开始事务吗?
7
A
回答
14
如果您阅读SQLite文档,您将看到它仅支持多连接读取,您不能从多个连接写入数据库,因为它不是为此设计的。
5
除非你使用立即开始启动你的交易,你冒回滚和重试他们的风险。 BEGIN不会做任何锁定;随后的UPDATE或INSERT获取锁定,并且您需要检查结果代码以查看它们是否失败。请参阅transactions上的此页面和locks上的此页面。
相关问题
- 1. 我可以从多个连接同时读写SQLite数据库吗?
- 2. 跨不同数据库连接的多个SQL事务命令
- 3. 当前不支持多个同时连接或同一事务内的不同连接字符串的连接
- 4. 如果每个表都相同,sqlite数据库可以不同吗?
- 5. 连接3个不同的数据库
- 6. 可以同时写入/读取同一个数据流吗?
- 7. 是否可以连接到同一个数据库
- 8. lmdb:我可以在同一个事务中访问不同的命名数据库吗?
- 9. 你可以为你连接的同一个数据库创建dblink吗?
- 10. 我可以连接来自不同数据库的两个表吗?
- 11. 我们可以使用连接两个不同的数据库表吗?
- 12. 多个控制器可以使用不同的dbcontexts同时访问同一个数据库吗?
- 13. 多个用户可以同时使用Java连接到Microsoft Access数据库吗?
- 14. 我可以用Play2同时连接10,000个连接吗?
- 15. SQL Server CE可以同时支持来自不同pc的多个连接吗?
- 16. 如何连接到一个数据库服务器中的不同实例的不同数据库?
- 17. 一个Tcp-Client可以同时建立与2个不同服务器的连接吗?
- 18. 数据库连接在与数据库相同的PC上开发时始终断开连接
- 19. 同时打开两个mysql数据库的连接
- 20. 以不同的数据连接两个相同的表结构
- 21. 链接可以同时有一个onclick jQuery和JavaScript事件吗?
- 22. 我可以从2个不同的DB2数据库中加入数据吗? (像SQL Server连接数据库)
- 23. Django - 我们可以建立一个连接到不同的远程数据库
- 24. 不同的数据库连接PARAMS
- 25. 连接到不同的MySQL数据库
- 26. SVN可以同步MySQL数据库吗?
- 27. 两个进程可以同时访问内存中(:内存:) sqlite数据库吗?
- 28. CI多个数据库连接不同的服务器
- 29. 我可以同时在不同的sql实例上附加数据库吗?
- 30. 根据SQLite中的查询,我可以插入到不同的数据库吗?
但是,您可以有两个并发写入事务,这是导致此问题的原因。 – 2008-12-18 01:34:00