select…for update使用方法

select…for update使用方法作用 selectforupd 是为了在查询时 避免其他用户以该表进行插入 修改或删除等操作 造成表的不一致性 给你举几个例子 select fromtforupda 会等待行锁释放之后 返回查询结果 select fromtforupda 不等待行锁释放 提示锁冲突 不返回结果 select fromtforupda

作用:

select for update 是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性.

给你举几个例子:

补充几点:

分成两类:加锁范围子句和加锁行为子句

加锁范围子句:在select…for update之后,可以使用of子句选择对select的特定数据表进行加锁操作。默认情况下,不使用of子句表示在select所有的数据表中加锁

加锁行为子句:当我们进行for update的操作时,与普通select存在很大不同。一般select是不需要考虑数据是否被锁定,最多根据多版本一致读的特性读取之前的版本。加入for update之后,Oracle就要求启动一个新事务,尝试对数据进行加锁。如果当前已经被加锁,默认的行为必然是block等待。使用nowait子句的作用就是避免进行等待,当发现请求加锁资源被锁定未释放的时候,直接报错返回。

在日常中,我们对for update的使用还是比较普遍的,特别是在如pl/sql developer中手工修改数据。此时只是觉得方便,而对for update真正的含义缺乏理解。

For update是Oracle提供的手工提高锁级别和范围的特例语句。Oracle的锁机制是目前各类型数据库锁机制中比较优秀的。所以,Oracle认为一般不需要用户和应用直接进行锁的控制和提升。甚至认为死锁这类锁相关问题的出现场景,大都与手工提升锁有关。

所以,Oracle并不推荐使用for update作为日常开发使用。而且,在平时开发和运维中,使用了for update却忘记提交,会引起很多锁表故障。 那么,什么时候需要使用for update?就是那些需要业务层面数据独占时,可以考虑使用for update。场景上,比如火车票订票,在屏幕上显示邮票,而真正进行出票时,需要重新确定一下这个数据没有被其他客户端修改。所以,在这个确认过程中,可以使用for update。这是统一的解决方案方案问题,需要前期有所准备。


转自:https://blog.csdn.net/zwl/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208699.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:58
下一篇 2026年3月19日 上午10:58


相关推荐

  • 瀑布模型详解

    瀑布模型详解瀑布模型是一个经典的软件生命周期模型 也叫预测型生命周期 完全计划驱动型生命周期 在这个模型里 在项目生命周期的尽早时间 要确定项目范围及交付此范围所需的时间和成本 在这个模型里 项目启动时 项目团队专注于定义产品和项目的总体范围 然后制定产品 及相关可交付成果 交付计划 接着通过各阶段来执行计划 应该仔细管理项目范围变更 如果有新增范围 则需要重新计划和正式确认 对于经常变化的项目而言 瀑布模型毫无价值 以下情况优先选择这种生命周期 项目需求明确 充分了解拟交付的产品 有厚实的行业实践

    2026年3月17日
    2
  • 【5】进大厂必须掌握的面试题-Java面试-spring

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。什么是spring? Spring本质上是一个轻量级的集成框架,可用于用Java开发企业应用程序。 Q2。命名…

    2021年6月23日
    93
  • js数组添加删除数据_如何删除数组中的元素

    js数组添加删除数据_如何删除数组中的元素文章目录添加删除数组元素的方法添加删除数组元素的方法<script>//添加删除数组元素的方法//1.push()在我们数组的末尾添加一个或者多个数组元素vararr=[1,2,3];//arr.push(4,’Argonaut’)console.log(arr);console.log(arr.push(4,’Argonaut’));//

    2026年4月16日
    4
  • http状态码502与504区别

    http状态码502与504区别502badgatewa 顾名思义网关错误后端服务器 tomcat 没有起来 应用服务的问题 前提是接入层 7 层正常的情况下 应用服务问题一种是应用本身问题 另一种是因为依赖服务问题比如依赖服务 RT 高 依赖的服务有大的读取 mysql 慢查 http 等 以至于调用方超过超时 read 时间 服务集群压力大时 也会出现 502 超时 502 理解为不可响应或响应不过来 其实还是不可响应 504

    2025年9月29日
    5
  • Pixso MCP + Cursor强强联合:从原型到上线的全流程闭环

    Pixso MCP + Cursor强强联合:从原型到上线的全流程闭环

    2026年3月15日
    2
  • 女人喜欢大男人还是小男人

    女人喜欢大男人还是小男人 转载自 http://hi.baidu.com/512347937/blog/item/6651e4cdec149c510eb3452c.html      大男人,小男人,到底谁能满足现代女人?现代女人首先取悦的是自己,然后才是男人,不管是大人,还是小男人,他们是他们,她是她自己。她为自己做这一切,她应该享有完美的人生。  经常有人问:你觉得什么是大男人,什么是小男人?  一般

    2022年7月25日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号