|
|
|
Могут ли транзакции быть вложенными?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Пишу сайт... и вот сложилась такая ситуация: Есть функция (на php), внутри которой стартуется транзакция. А сейчас пишу другую функцию, в которую буду вкладывать данную, но и в новой функции мне надо быть уверенным, что все данные сохранятся как надо. То есть мне и это всё тоже надо в транзакцию обернуть. Вот и вопрос, могу ли вложить одну транзакцию в другую, или мне надо эту ситуацию на стороне клиента разруливать (в данном случае клиент = php :) ) То есть, что будет, если последовательность команд будет такая: Код: sql 1. 2. 3. 4. 5. 6. Сможет ли в данном случае mysql разобраться что я от него хочу, или он начнёт творить что-то непонятное? :) Заранее спасибо. Сорри, что такой вопрос задаю. Понимаю что в документации скорее всего на него есть ответ, да вот только искать его там времени нету. Проект висит на грани задержки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 15:57:09 |
|
||
|
Могут ли транзакции быть вложенными?
|
|||
|---|---|---|---|
|
#18+
В документации ничего не нашёл, а в инэте говорят что как минимум innoDB вложенные транзакции не поддерживает. Ну что ж, на стороне клиента разруливать буду. Но если всё-таки как-то эту ситуацию можно решить на стороне сервера - было бы очень круть узнать как. Буду очень благодарен за подобную помощь :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 17:02:34 |
|
||
|
Могут ли транзакции быть вложенными?
|
|||
|---|---|---|---|
|
#18+
Програмёр, 13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 17:13:23 |
|
||
|
Могут ли транзакции быть вложенными?
|
|||
|---|---|---|---|
|
#18+
Програмёр, нет, в мускл нет "автономных" трансакций как в Оракле. В общем виде варинаты такие: 1. если нужен лог, который не надо откатывать, то используйте муисам тип таблиц. 2. некоторые фрейворки (например ActiveRecord / Rails) Имют провеку на уже сушествующую трансакцию. Если трансакцию идет, то никаких новых транскций не открывается и не комитится. Комит делает только основная трансакция. С ролбаком там хитрее, если что не так, можно выставить флаг -- обязательный ролбак в конце или сделать ролбак сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 17:13:24 |
|
||
|
Могут ли транзакции быть вложенными?
|
|||
|---|---|---|---|
|
#18+
javajdbc, Спасибо, на стороне клиента решил небольшим, так сказать, костылём. Проверяю запущена ли транзакция, и если запущена, то новую не создаю... А по условию, что новая создана не была, соответственно её не коммичу и не откатываю. На сейчас сойдёт... если потом мешать будет - буду думать :) Всем спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2014, 18:26:53 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38674585&tid=1834645]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
82ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 429ms |

| 0 / 0 |
