数据库中锁和解锁

select * from zk_jjxx where   dw_dm='253454322112'
for update ;

-----------------------------------
select *from v$locked_object; -- 被锁对象  产生锁的会话sid

select * from all_objects where object_id = &object_id;  -- 查看被锁表的详细信息 被锁的对象的object_id及产生锁的会话sid

select sid, serial# from v$session where sid = &sid;   ---130   8955    产生锁的会话sid

alter system kill session '130,8955';   --'sid,serial#';  清除锁

--oracle:
--LOCK TABLE 表 IN EXCLUSIVE MODE ;
--加锁后其它人不可操作,直到加锁用户解锁,用commit或rollback解锁 


 

锁的概述 
一. 为什么要引入锁 
多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 
丢失更新
A,B两个用户读同一数据并进行修改,都返回修改成功,但其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 
脏读
A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 
不可重复读
A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 
并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致 
更多关于读一致问题请访问:http://www.blogjava.net/hitlang/archive/2009/04/13/265256.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值