Допустим я вызываю функцию в которой вызывается еще и другая функция например:
function1
begin
...
...
select function2 -- здесь делаю insert и update в таблицах
...
...
и здесь случилась ошибка
end
В случае ошибки после вызывания другой функции которая прошла успешно, случится ли rollback той функции(function2) где у меня insert,update?
Конечно, случится ROLLBACK. И проверять тут ничего не надо — это базовый принцип работы функций в PostgreSQL — любая функция выполняется в транзакции, вложенных транзакций в PostgreSQL нет.
Обсуждают сегодня