我最近读了很多书,我现在非常困惑交易和锁定是如何工作的,以及它们之间的关系。
使用 SQLite 时,想象一下以程:
- 开始SQLite事务
- 在 SQLite 连接上运行 select 语句以返回值
- 如果返回值满足条件,请转到步骤 #4,否则转到步骤 #5
- 进行更新
- 提交 SQLite 事务
如果两个线程运行相同的代码,是否有可能在其中一个线程中获得所谓的"脏读"含义,在步骤 #3 和步骤 #4 之间,另一个线程可以运行更新(步骤 #4(?
是的,它被称为隔离级别:https://www.sqlite.org/isolation.html