sql - Oracle SQL 如何跳过达到特定超时的更新?
问题描述
假设我正在运行一个有循环的查询,但在它的一次迭代中它卡住了,因为其他一些进程正在尝试更新同一行(或其他一些原因)。如何让更新跳过该迭代并继续下一个?
解决方案
没有更多细节,这真的很难回答。但是一般的方法是在开始更新它们的过程之前锁定这些行并跳过任何已经锁定的行。
像这样的东西:
select ...
from the_table_to_update
where ... --<< your conditions go here
for update nowait --<< lock the rows, but don't wait for a lock
skip locked; --<< ignore already locked rows.
该查询结果的循环(例如通过游标或您的编程语言)
推荐阅读
- mongodb - mongodb 的每个分片是否对一个集群中的其他分片不可见?
- flutter - 嵌套的 ListView 不可见 - Flutter
- python - matplotlib 中不寻常的条形图
- odoo - 如何在odoo13中仅从pos源位置加载产品
- asp.net-mvc - 托管服务器中的内存不足异常
- java - 我们可以在浏览器中发出一个包含多个标头作为 URL 的 GET API 调用请求吗
- c# - 如何在 ASP.NET MVC 中将条带支付与自定义表单集成?
- javascript - 有没有办法从后端自动渲染项目?
- jenkins - 在 Jenkins 中启用永久禁用的项目
- c# - 将 float[] 转换为 byte[] 的最快方法是什么?