Odpowiedzi według numeru:
-
Nie; jeśli
S2
zakończy się niepowodzeniem, cała transakcja zostanie przerwana i można ją tylko wycofać. -
Prawdopodobnie zaszło nieporozumienie. Instrukcja SQL
BEGIN
który rozpoczyna transakcję jest czymś zupełnie innym niżBEGIN
który uruchamia blok PL/pgSQL. Ten ostatni nie rozpocznij transakcję.Jeśli nie było wyraźnego polecenia SQL
BEGIN
, każda instrukcja działa w ramach własnej transakcji („autocommit”).Wszystkie oświadczenia w funkcji są wykonywane w jednej transakcji.
-
Nie możesz mieć
COMMIT
(lubROLLBACK
) w funkcji. -
TAk. To to samo pytanie, co 1., tylko negatywne.