Что такое транзакция - я разобрался, и смысл ROLLBACK тоже понятен - откат транзации.
НО.. не могу себе представить ситуацию, где бы его можно было бы целесообразно вызывать из PHP&MySQL. Я так понимаю, когда сценарий PHP заканчивает своё выполнение, то заканчивается и сеанс работы с MySQL, и вместе с ним и автоматический откат транзакции если команда COMMIT не была последней. А сценарий PHP может закончить своё выполнение либо в случае отключения питания, глюков на сервере, от исключения или ошибки в каком то запросе(но это уже программно при этом бросить исключение), значит во всех случаях когда надо откатывать транзакцию - она автоматически откатится, и зачем тогда ROLLBACK?
А если транзакция была вызвана лишь с целью что-то узнать из базы данных, и на основании этого сделать модификацию или откатить, то на мой взгляд целесообразней, начать транзакцию? образовать временные таблицы на имеющихся выполнить вычисления на временных таблицах и сделать или не сделать в соответствии с результатами модификацию,и COMMIT . Или я не прав? (Отредактировано автором: 09 Февраля, 2011 - 12:46:38)
|