powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Могут ли транзакции быть вложенными?
6 сообщений из 6, страница 1 из 1
Могут ли транзакции быть вложенными?
    #38674503
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

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

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

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



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

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

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

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

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

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

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

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

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

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

13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax

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


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