Odpowiedzi według numeru:
-
Nie; jeśli
S2zakończy się niepowodzeniem, cała transakcja zostanie przerwana i można ją tylko wycofać. -
Prawdopodobnie zaszło nieporozumienie. Instrukcja SQL
BEGINktóry rozpoczyna transakcję jest czymś zupełnie innym niżBEGINktó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.