Oracle 锁表

Oracle锁表

今天在公司用ibaitis对数据表进行更新操作的时候发现如下Bug:

SQL语句正常,拼接参数正常,运行更新操作时阻塞,程序一直不跑。最后发现是我在Oracle中查找数据的时候使用了select for update(造成了行级锁),所以更新操作一直卡在那里不动。

普及一下数据库中的锁

  1. 数据库中的锁有基本的两类,共享锁和排他锁,共享锁是其他事务不能对当前事务加了共享锁的表进行更新,只可以读;排他锁是任何操作都不能进行。
  2. 行级锁和表级锁,Oracle中使用update,insert…for update;会造成该行的数据加锁,从而别的事务不能进行修改等操作。
  3. 解除行级锁,回滚当前事务,或杀死加锁进程。 (加锁操作是当前事务进行的,所以回滚当前事务就可以撤销加锁的操作)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值