Skrivningen är atomär men en ökning kräver också en läsning. Så frågan är:Är du säker på att läsningen är säker, med andra ord, är du säker på att en annan tråd som gör ökningen inte kommer att sluta med samma värde som ska ökas? Jag har tvivel. Det 100 % korrekta sättet att göra detta skulle vara.
-- begin transaction here
select counter from myCounters where counter_id = 1 FOR UPDATE;
-- now the row is locked and nobody can read or modify its values
update myCounters set counter = ? where id = 1;
-- set ? to counter + 1 programmatically
commit; -- and unlock...