如果一个transaction操作中select...for update了一个表,然后又update...for update同一个表,会错误么?

解决方案 »

  1.   

    执行select...for update后,就直接update好了,为什么还要update...for update ?
    mysql行锁相关例子和分析可以参看http://blog.csdn.net/ldb2741/archive/2010/02/25/5325161.aspx
      

  2.   

    也就是说FOR UPDATE锁的是相对于事务与事务之间的,而不是单个操作间的么?
      

  3.   

    for update, 等于获取了类似于写锁之类的东西,再重复获取写锁,会立即返回,所以不会有问题。这叫做可重入的锁。如果是不可重入的锁实现,那就会阻塞住。
      

  4.   

    那么对于同一个表,第二个FOR UPDATE命令还会有执行的机会么?