代码之家  ›  专栏  ›  技术社区  ›  Don Box

事务是否确保不发生脏读?

  •  0
  • Don Box  · 技术社区  · 7 年前

    最近我读了很多书,现在我很困惑事务和锁是如何工作的,以及它们之间是如何相互关联的。

    使用sqlite时,请想象以下流程:

    1. 开始sqlite事务
    2. 在sqlite连接上运行select语句以返回值
    3. 如果返回值满足条件,则转到步骤4,否则转到步骤5
    4. 做更新
    5. 提交sqlite事务

    如果两个线程运行相同的代码,那么在其中一个线程中是否有可能获得所谓的“脏读”即在步骤3和步骤4之间,另一个线程可以运行更新(步骤4)?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Don Box    7 年前

    是的,这叫做隔离级别: https://www.sqlite.org/isolation.html

    推荐文章