У меня есть таблица mysql (таблица-A), которая содержит список уникальных идентификаторов продуктов. Приложение, использующее эту таблицу, использует несколько потоков, каждый из которых выбирает строку таблицы (вверху всего), использует API для захвата данных продукта и обновления его в другой таблице (таблица-B). После этого поток удаляет соответствующую строку идентификатора продукта в таблице-A и выбирает другую для работы (цикл до тех пор, пока все строки в таблице-A не будут удалены при обновлении таблицы-B).mysql - Блокировка строк для выбранного запроса?
Как предотвратить, чтобы потоки моего приложения случайно работали в одной строке из таблицы-A? Есть ли способ заблокировать выбор строки?
Пример: Нить-1 приложения выбирает строку-1 из таблицы-A. Требуется около 10-15 секунд, чтобы захватить и обновить все связанные данные в таблице-B из API. Пока это происходит, thread-2 отключит и проверит таблицу-A, чтобы выбрать строку для работы. В этом случае я хочу только заблокировать строку-1, чтобы он не показывал нить-2/читал его и вместо этого выбирал строку-2.
см. Транзакции, оптимистичная/пессимистическая блокировка и т. Д. – biziclop