Транзакция в SQL — это группа запросов, которые рассматриваются как единое целое. 5 Если база данных может выполнить всю группу запросов, она делает это. 5 Если любой из них не может быть выполнен в результате сбоя или по какой-то другой причине, не будет выполнен ни один запрос группы. 5
Работа транзакции включает следующие этапы: 1
- Открытие. 1 В разных базах данных способ открытия транзакции отличается: в Oracle она открывается сама, по факту первой изменяющей операции, а в MySql нужно явно написать «start transaction». 1
- Выполнение операций. 1 В рамках одной транзакции можно совершить несколько операций, например, несколько разных insert, изменить и удалить данные. 1
- Закрытие. 1 Есть два варианта закрытия транзакции: COMMIT подтверждает все внесённые изменения, а ROLLBACK откатывает их. 1
Транзакция может иметь два исхода: 4
- Изменения данных, произведённые в ходе её выполнения, успешно зафиксированы в базе данных. 4
- Транзакция отменяется, и отменяются все изменения, выполненные в её рамках. 4 Отмена транзакции называется откатом (rollback). 4
Транзакции необходимы только при модификации данных, то есть при использовании операторов INSERT, UPDATE или DELETE. 3 Простая выборка SELECT не изменяет данных, и запоминать или откатывать нечего. 3