zoukankan      html  css  js  c++  java
  • Oracle For update研究

     

    For update

    1 select * from hjh for update [of hjh.a]; 锁定表的所有行

    可以select,insert,不可以update,Delete  Commit提交后,解除锁定

    2 SELECT * FROM hjh WHERE a = 1 FOR UPDATE [of hjh.a]; 只锁定a=1的行

    3 SELECT a.a, t1.d FROM hjh a, t1 WHERE a.a = t1.c [and a.a = 2] FOR UPDATE; 锁定两个表的中满足条件的行

    4 SELECT a.a, t1.d FROM   hjh a,t1 WHERE a.a = t1.c [and a.a = 2] FOR UPDATE OF a.a; 只锁定hjh中满足条件的行

    行级共享锁,然后以独占方式进行修改数据(update,delete)

    FOR UPDATE 的时候 ,其他人不能更改你查询出来的记录

    commitrollback都可以释放锁

    DML锁包括table-level locks(TM)Row-level locks(TX)

    说明row-level lock(TX type)是为了确保其它用户不可以在相同的时间修改相同的行

    TM 是对象锁,表示可能在这个对象上做了什么操作,还没有结束,所以不允许ddl

    TX 是事务锁,表示发起了一个事务,发起事务的判别标准

  • 相关阅读:
    OCP-1Z0-053-V13.02-638题
    OCP-1Z0-053-200题-60题-637
    OCP-1Z0-053-V13.02-637题
    OCP-1Z0-053-200题-47题-625
    OCP-1Z0-053-V13.02-625题
    OCP-1Z0-053-200题-42题-621
    OCP-1Z0-053-V13.02-621题
    OCP-1Z0-053-200题-41题-620
    OCP-1Z0-053-V13.02-620题
    OCP-1Z0-053-200题-37题-616
  • 原文地址:https://www.cnblogs.com/zping/p/1370245.html
Copyright © 2011-2022 走看看