本帖最后由 one_chord 于 2012-06-28 16:38:20 编辑

解决方案 »

  1.   

    用select ... for update
      

  2.   

    嗯, 不对, 要用LOCK IN SHARE MODEhttp://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html
      

  3.   


    ++ ,锁同一批记录用for update/shared mode,锁不同表的记录那就只能直接锁表了。这里你锁记录就可以了,因为每一个事务多会先select A,这样就会锁住保证一致性。
      

  4.   

    谢谢。。
    结合SELECT FOR UPDATE 和 插入数据后不符条件再回滚 确实可以实现了。。再请教一下,如果我向B表并不是插入数据而是UPDATE数据,那是不是不用SELECT锁行了。。UPDATE本身就会锁了??