Oracle 锁住单表和单行记录

记得前段时间面试时一面试官就问到 Oracle如何锁住单条记录的,当时自己不是在想答案,而是靠还有这么问这么变态的问题,对于没用过Oracle的我一头雾水,更别答案了,今天用到这个顺便记录下,废话不多说进入正题:

单表加锁

1.用scott用户登录         查询emp表并锁定:select  t.*,  t.rowid  from emp t for update


2.然后用其他用户登录,再进行更改emp表中的数据会提示表已被其他用户锁定


如果scott用户无论rollback还是commit都能使emp表的锁释放,此时 其他用户就可以操作了

锁住单行

1.同样用scott用户登录只加where条件便可达目的        :select t.*, t.rowid from emp t where empno=7369 for update ;



2.然后用其他用户登录,再进行更改emp表中的empno=7369和其它数据对比 会看到只有本行被锁住


如果scott用户无论rollback还是commit都能使empno=7369这条记录的锁释放,此时 其他用户就可以操作了此条记录了



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值