В таблице , где каждая строка имеет счетчик (только целое значение), мне нужно , чтобы получить текущее значение и увеличить его в то же самое время .
По сути, я хочу сделать это:
SELECT counter FROM table WHERE id=123
UPDATE table SET counter=counter+1 WHERE id=123
Но выполнение двух запросов, очевидно, не является потокобезопасным: несколько процессов, выполняющих одну и ту же операцию (в одной строке), могут получить одно и то же значение счетчика. Мне нужно , чтобы они все быть уникальным, так что каждый процесс будет получить фактическое значение тока и увеличить его на единицу.
Я могу придумать конструкцию, в которой я устанавливаю ручную блокировку для каждой строки, но мне интересно, есть ли более простой способ сделать это?