mysql 2.0.27, кластер, хранилище NDB.Решил проверить, работает ли SELECT FOR UPDATE.
Подключаюсь к БД с двух консолек, в одной делаю:
SELECT * FROM table FOR UPDATE;
По идее это должно залочить все выбранные строки до последующего UPDATE с этого же соединения.
В другой делаю:
SELECT * FROM table;
И вижу содержимое таблицы.
Вопрос: это я туплю или в mysql опять сделали интерфейс, а реализацию еще не успели?
А вообще задача такая: надо сделать так, чтобы клиенты не могли одновременно выбрать с помощью SELECT одни и те же данные. Т.е. клиент выбирает строку, обрабатывает ее и делает ей UPDATE. И чтоб при этом они не кидались одновременно на одну и ту же строку. Может есть другой путь помимо SELECT FOR UPDATE? Построчная блокировка не устраивает, так как SELECT на самом деле выбирает несколько строк и блокировать их вручную слишком медленно.