пессимистическое блокирование

gs-design

Новичок
Добрый день!

Подскажите, возможно ли применение запроса в ПХП типо: "SELECT .... FOR UPDATE" при условии, что секция "UPDATE ..." будет вызываться пользователем позже?

Ситуация простая - пишу пользовательский интерфейс для обработки денежных данных (их распределения). Схема такая:
1 - выбираю сумму
2 - отдаю веб-мордочку клиенту
3 - клиент вводит данные и отсылает на сервер
4 - данные заносятся в базу.

Логично в 1 открыть транзакцию и создать SELECT ... FOR UPDATE NO WAIT ,
а в 4 - сделать закрытие транзакции... Но, я так понимаю, что в п.2 происходит закрытие скрипта, а в 4 - открытие нового.

Проблема в том, что когда скрипт заканчивает работу - соединение с БД разрывается и незавершённые транзакции откатываются...

Если есть решение, приведите, пожалуйста пример или ссылку на материал.

Спасибо
 

~WR~

Новичок
Нет-нет-нет, нельзя долго держать открытые транзакции. Даже если бы такая возможность была.

Следует решать этот вопрос на уровне логики приложения. Например, добавить отдельное поле, в котором будет информация о локе. И, если лок стоит, запрещать обновление такого ряда именно на уровне приложения.
 
Сверху