关于这个问题,如果多个线程一起进入,如何创建一个查询以确保只有一个事务正在运行?
UPDATE DPCM_BRANCH SET COUNTER = COUNTER+1 WHERE BRANCH=213546 and (SELECT COUNTER from dpcm_branch where counter = 122);
以上只是一个样本。我确信上面的代码返回错误。
我用C#和Oracle SQL编写代码。
对于上面的代码,我想在COUNTER与最新的COUNTER(122)匹配时更新COUNTER。
有人能帮帮我吗?
答案 0 :(得分:2)
UPDATE DPCM_BRANCH SET COUNTER = COUNTER + 1
WHERE BRANCH = 213546 and counter = 122;
我不确定您的需要,但如果目标是序列化线程,则更新只能在能够获取行上的锁定,阻止其他线程直到持有者执行提交或回滚。