Odpovědi podle čísla:
-
Ne; pokud
S2
selže, celá transakce bude přerušena a lze ji pouze vrátit zpět. -
Pravděpodobně došlo k nedorozumění. Příkaz SQL
BEGIN
který zahajuje transakci, je něco zcela jiného nežBEGIN
který spustí blok PL/pgSQL. Ten druhý ne zahájit transakci.Pokud nebyl žádný explicitní příkaz SQL
BEGIN
, každý příkaz běží ve své vlastní transakci („autocommit“).Všechny příkazy ve funkci jsou provedeny v jediné transakci.
-
Nemůžete mít
COMMIT
(neboROLLBACK
) ve funkci. -
Ano. Toto je stejná otázka jako 1., pouze v záporu.