我有逻辑从数据库中选择一些状态为“就绪”的行一旦我得到结果集,我需要将状态更新为’processing’,因此没有其他线程可以访问这些行.然后我必须对结果集中的记录执行一些逻辑,并且一个处理完成后我需要再次将记录状...
我有逻辑从数据库中选择一些状态为“就绪”的行
一旦我得到结果集,我需要将状态更新为’processing’,因此没有其他线程可以访问这些行.然后我必须对结果集中的记录执行一些逻辑,并且一个处理完成后我需要再次将记录状态更新为完成.
问题:
有没有办法当我执行select语句时 – 那时我只能同时改变结果集中返回的行的状态.
有人可以建议是否有一种在java中实现它的好方法.
解决方法:
您可以在事务中SELECT … FOR UPDATE NOWAIT在更新它们之前要处理的行. SELECT … FOR SHARE NOWAIT将失败,如果有人正在更新选定的行或某人已经完成了SELECT … FOR SHARE NOWAIT on them.
细节here.
编程基础网
本文标题为:java – 我们可以一起选择和更新数据库吗?
基础教程推荐
猜你喜欢
- SpringBoot Admin集成诊断利器Arthas示例实现 2022-12-14
- Java中实现代码优化的技巧分享 2023-04-17
- SpringBoot整合Druid数据源的方法实现 2023-01-03
- java启动参数之谜的排查过程 2022-12-10
- tomcat共享多个web应用会话的实现方法 2023-07-31
- Spring Boot使用线程池处理上万条数据插入功能 2023-04-06
- synchronized背后的monitor锁实现详解 2023-05-13
- JSP中常用的JSTL fmt(format格式化)标签用法整理 2023-08-03
- Java Graphics实现界面显示文字并换行 2023-04-22
- SpringBoot简单实现文件上传 2023-05-08
