В моем приложении я хочу взять значение из таблицы InnoDB, а затем увеличить и вернуть его в рамках одной транзакции. Я также хочу заблокировать строку, которую я собираюсь обновить, чтобы предотвратить изменение значения другим сеансом во время транзакции. Я написал этот запрос;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
BEGIN TRANSACTION;
SELECT @no:=`value` FROM `counter` where name='booking' FOR UPDATE;
UPDATE `counter` SET `value` = `value` + 1 where `name`='booking';
SELECT @no;
COMMIT;
Я хочу знать, правильный ли уровень изоляции и есть ли необходимость в инструкции FOR UPDATE. Я делаю это правильно?