Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Могут ли транзакции быть вложенными? / 6 сообщений из 6, страница 1 из 1
19.06.2014, 15:57:09
    #38674503
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
Всем привет.

Пишу сайт... и вот сложилась такая ситуация: Есть функция (на php), внутри которой стартуется транзакция. А сейчас пишу другую функцию, в которую буду вкладывать данную, но и в новой функции мне надо быть уверенным, что все данные сохранятся как надо. То есть мне и это всё тоже надо в транзакцию обернуть.

Вот и вопрос, могу ли вложить одну транзакцию в другую, или мне надо эту ситуацию на стороне клиента разруливать (в данном случае клиент = php :) )

То есть, что будет, если последовательность команд будет такая:
Код: sql
1.
2.
3.
4.
5.
6.
START TRANSACTION;
//... тут идёт сохранение данных
START TRANSACTION;
//.... тут тоже много чего сохраняется
COMMIT;
COMMIT:



Сможет ли в данном случае mysql разобраться что я от него хочу, или он начнёт творить что-то непонятное? :)

Заранее спасибо. Сорри, что такой вопрос задаю. Понимаю что в документации скорее всего на него есть ответ, да вот только искать его там времени нету. Проект висит на грани задержки.
...
Рейтинг: 0 / 0
19.06.2014, 17:02:34
    #38674568
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
В документации ничего не нашёл, а в инэте говорят что как минимум innoDB вложенные транзакции не поддерживает.

Ну что ж, на стороне клиента разруливать буду. Но если всё-таки как-то эту ситуацию можно решить на стороне сервера - было бы очень круть узнать как. Буду очень благодарен за подобную помощь :).
...
Рейтинг: 0 / 0
19.06.2014, 17:13:23
    #38674584
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
Програмёр,

13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax
...
Рейтинг: 0 / 0
19.06.2014, 17:13:24
    #38674585
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
Програмёр,

нет, в мускл нет "автономных" трансакций как в Оракле.

В общем виде варинаты такие:

1. если нужен лог, который не надо откатывать, то
используйте муисам тип таблиц.

2. некоторые фрейворки (например ActiveRecord / Rails)
Имют провеку на уже сушествующую трансакцию.
Если трансакцию идет, то никаких новых транскций не
открывается и не комитится. Комит делает только основная
трансакция. С ролбаком там хитрее, если что не так,
можно выставить флаг -- обязательный ролбак в конце или
сделать ролбак сразу.
...
Рейтинг: 0 / 0
19.06.2014, 18:26:53
    #38674687
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
javajdbc,

Спасибо, на стороне клиента решил небольшим, так сказать, костылём. Проверяю запущена ли транзакция, и если запущена, то новую не создаю... А по условию, что новая создана не была, соответственно её не коммичу и не откатываю. На сейчас сойдёт... если потом мешать будет - буду думать :)

Всем спасибо за помощь.
...
Рейтинг: 0 / 0
19.06.2014, 19:09:15
    #38674731
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могут ли транзакции быть вложенными?
alex564657498765453Програмёр,

13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax

о! спасибо!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Могут ли транзакции быть вложенными? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]