同一记录上的并行请求

时间:2014-02-12 12:49:40

标签: php mysql transactions parallel-processing

假设我有一个PHP代码,其中包含将在事务中执行的这些步骤:

  1. 获取表格中字段的值
  2. 检查值,如果超过10,则继续执行步骤4
  3. 使用UPDATE A SET amount = amount - 1
  4. 等MySQL运算符减少一个单位的值
  5. 结束
  6. 现在假设提到的值为11,如果我们有2个并行请求同时执行此代码,请求号1和请求号2。

    • no.1获取值,而no.2同时获取值
    • no.1检查该值,现在它将超过10,它将减少一个单位,DB中的新值将为10
    • no.2将检查自己已经获得它的值,并且它再次超过10,但在更新DB中的新值后将是9,这是无效的

    我应该怎样做以防止这种情况发生?

0 个答案:

没有答案