Тестирую SELECT FOR UPDATE в своей таблице innoDB. Но мне не удается нарваться на лок. Хотелось бы убедиться в том, что оно действительно работает. Делаю следующее.
Запускаю вот такой процесс:
set autocommit=0;
start transaction;
SELECT * FROM user_balance WHERE id = 1 FOR UPDATE;
SLEEP(10);
UPDATE user_balance SET value = '123' WHERE id = 1;
commit;
И параллельно, пока это все дело выполняется, выполняю следующий запрос:
SELECT * FROM user_balance WHERE id = 1
В итоге второй параллельный процесс без проблем возвращает мне запись (еще не измененную). После завершения благополучно возвращает мне измененную запись.
Я пробовал разные вариации (без оборачивания в транзакцию в том числе)
Я что-то делаю не так?