Отговори по номера:
-
Не; ако
S2не успее, цялата транзакция се прекъсва и може само да бъде върната назад. -
Вероятно има недоразумение. SQL изразът
BEGINкойто стартира транзакция е нещо съвсем различно отBEGINкойто стартира PL/pgSQL блок. Последното не започнете транзакция.Ако няма изрична SQL команда
BEGIN, всяко изявление се изпълнява в собствена транзакция („автоматично подаване“).Всички изрази във функция се изпълняват в една транзакция.
-
Не можете да имате
COMMIT(илиROLLBACK) във функция. -
да Това е същият въпрос като 1., само че е отрицателен.