数据库操作是原子的



如果多线程同时查询以下SQL到数据库(postgresql):

UPDATE mytable SET n=n+1 WHERE n=0;

"n"最终是否会大于 1

更新将采用写锁定,因此实际上不会在表上发生并发操作。

n will not be greater than 1.

update mytable set n=n+1 where n=0;

"n"最终是否会大于 1

不,它不会"大于 1",因为将1添加到0会产生1

所以n等于1,而不是"大于1"。

是的,可以保证在更新完成后,以前为 0(零)的所有值都是 1(一),没有错误。

最新更新