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