select job from emp
  where job='clerk' for update of empno;什么意思呢?

解决方案 »

  1.   

    用了for update of empno,表示别人就不能修改   这是为了数据读出的一致性,   
      

  2.   


    它是如何锁定呢?它锁定job='clerk'  这几行数据, 根据EmpNo条件吗?
      

  3.   

    1 select * from TTable1 for update 锁定表的所有行,只能读不能写 2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行 3 select  * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录 4 select  * from Table1 a join Table2 b on a.pkid=b.pkid  where  a.pkid = 10 for update 锁定两个表的中满足条件的行 5. select  * from Table1 a join Table2 b on a.pkid=b.pkid  where  a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
      

  4.   

    3 select  * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录 -------------------------------------------
    这个应该是锁定满足连接条件的所有表的记录吧
      

  5.   

    3 select  * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录 -------------------------------------------
    这个应该是锁定满足连接条件的所有表的记录吧