В каждой записи БД есть столбец status
Хочу взять в работу строку со status = 0 и сразу же присвоить status = 1, это значит, что строка сейчас находится в работе и другие потоки ее не должны взять.
Решил сделать через транзакцию:
START TRANSACTION;
SELECT @id:= id AS id, username, pass FROM t1 WHERE status = 0 LIMIT 1 FOR UPDATE;
UPDATE t1 SET status= 1 WHERE id = @id;
COMMIT;
работает, но не в БАС. Использовал встроенный модуль SQL, но он не не обрабатывает больше 1 запроса за раз и не обрабатывает транзакции.
Как в БАС выполнить транзакцию или какие есть варианты решения без костылей, типа выгрузить сперва все id c БД в файл и работать с ним и с БД..