如果多线程同时将以下SQL查询到数据库(postgresql):
UPDATE mytable SET n=n+1 WHERE n=0;
是否' n'最终将大于1
答案 0 :(得分:1)
更新将采用写锁定,因此表中不会实际发生并发操作。
{{1}}
答案 1 :(得分:0)
update mytable set n=n+1 where n=0;
'n'是否最终大于1
不,它不会是“大于1 ”,因为将1
添加到0
会产生1
。
因此n
等于至1
,而不是“大于1 ”。
是的,保证在更新完成后没有错误的所有以前为0(零)的值都是1(一)。