В моих терминах «транзакция» обрабатывает операции как атомарные, скажем, если один сбой означает, что все потерпит неудачу.Но что произойдет, если транзакция по какой-либо причине потерпит неудачу?
Учтите это:
- action.open
- insert1
- insert2
- транзакция.commit
Как это работает?
A.2,3 будет выполнен, и в случае сбоя одного из них все изменения будут отменены из БД из-за отсутствия 4?В этом случае, если выполнения 2,3 были в порядке, но 4 завершились неудачно, тогда вся операция, которая должна была завершиться успешно, фактически потерпит неудачу?
или
B.2,3 не будет выполняться на уровне дБи если все в порядке, то 4. будет выполнять фактические команды в БД?В этом случае, если 4 не работает на полпути своей операции, по какой-то причине это означает, что произойдут частичные -non-atomic- вставки?
или
C. Ответ - что-то другое?
спасибо!