skip locked

create table EMPLOYEE
(
  EMPID  INTEGER,
  DEPTID INTEGER,
  SALARY NUMBER(10,2)
);
insert into employee (EMPID, DEPTID, SALARY)
values (1, 10, 5500.00);

insert into employee (EMPID, DEPTID, SALARY)
values (2, 10, 4500.00);

insert into employee (EMPID, DEPTID, SALARY)
values (3, 20, 1900.00);

insert into employee (EMPID, DEPTID, SALARY)
values (4, 20, 4800.00);

insert into employee (EMPID, DEPTID, SALARY)
values (5, 40, 6500.00);

 commit;

session1:

    SQL> select * from employee where empid= 1 for update skip locked;
 
        EMPID         DEPTID            SALARY
            -----        --------        ------------
              1               10             5500.00

session2:

       SQL> select * from employee where empid= 1 for update skip locked;
 
        EMPID         DEPTID            SALARY
            -----        --------        ------------
    可以看到在session1有数据,原因是同一个SESSION的锁定可以重复获取;session2没有数据,原因是For Update Skip Locked发现记录被锁定, 则被筛选掉,且是在SQL查询结果集的基础上进行二次筛选。

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值