解决方案 »

  1.   

    并发的时候,除了用事务控制外,也可以在表里加个标示记录状态的字段,比如status default 0。
    update 记录的时候先判断 status ,如果 status = 0 ,则可以进行修改的过程,分如下步骤:
    1. 更新status = 1;
    2. 转账业务更新表
    3: 更新status = 0;
    update 记录的时候如果status = 1 ,则需要延时等待(dbms_lock.sleep(n)) ,然后再判断 status 直到status = 0 才可以象上面一样操作。
      

  2.   

    如果只是判断status == 0, 还是会出现并发可能多个线程都读到是0的情况啊
      

  3.   

    将事物的隔离级别设置为Serializable?