oracle 数据并发管理

本文介绍在两个并发会话中更新相同数据库记录时如何解决冲突。通过查询冲突会话并使用特定命令终止其中一个会话,最终确保数据的一致性和事务的正常完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 打开两个会话,修改同一条数据
    会话1
    conn hr/hr
    update employees set salary=20000 where employee_id=206;
    这里数据修改成功但没有提交
     
    会话2
    conn hr/hr
    update employees set salary=10000 where employee_id=206;
     
    这里卡住了,因为会话一正在修改这条数据
     
  2. 查看有冲突的会话
    可以再开一个会话
    select sid,serial#,username
    from v$session
    where sid in (select blocking_session from v$session);
     
     
  3. 杀掉有冲突的会话
    alter system kill session ‘30,24369’ immediate;
    这里的数字是刚才查询到的sid和serial#
     
     
  4. 此时会看两个会话
    会话2:
    会话2的数据操作已经成功
     
    会话1:
    而会话1这边已经和数据库断开连接
     
     
     
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值