需要将事务设置为串行化(读一致性)。

解决方案 »

  1.   

    写错了。应该是在执行SELECT操作时需要加锁。因为并发操作时有可能多个进程同时在执行下面的SELECT语句,如果没有加锁,各进程都认为SELECT成功,取出的值也是相同的,这样一来就会只有一个进程的UPDATE真正起作用,其他的UPDATE都会被这个覆盖掉。
    SELECT balance into $var_balance FROM acc_lst WHERE  acc_lst.accno = $tran_accno;还有一种解决方法就是在update时再加个条件balance要等于开始读出来的值。
      

  2.   

    谢谢,还有谁有更多的解释?