UPDATE при параллельных запросах
Существует таблица со следующими столбцами: index int (primary key) | userid varchar | userindex int NULL
Задача: необходимо у случайной строки, которая имеет значение NULL в столбце userindex, заменить userindex на указанное значение.
Решение было следующим:
UPDATE table SET `userindex` = 1 WHERE `userindex` IS NULL ORDER BY RAND() LIMIT 1
Внимание, вопрос: Безопасно ли использование данного запроса при возможных одновременных запросах? Не получится ли изменение одной и той же строки в разных запросах? Поможет ли использование транзакции?