4.27 Proč nelze použít COMMIT, ROLLBACK v PL/pgSQL?

Z PostgreSQL
Verze z 18. 2. 2012, 09:34, kterou vytvořil Pavel (diskuse | příspěvky) (Založena nová stránka: PostgreSQL nepodporuje autonomní transakce uvnitř uložených procedur. Podobně jako zpracování SQL příkazů v PostgreSQL, že každá funkce poběží uvnitř tr...)

(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

PostgreSQL nepodporuje autonomní transakce uvnitř uložených procedur. Podobně jako zpracování SQL příkazů v PostgreSQL, že každá funkce poběží uvnitř transakce, ale není možné tuto vnější transakci obejít.

Pokud nutně potřebujete řídit transakce z uložených procedur, lze použít dblink, případně použít skript (kód) z klienta. V řadě situací ovšem postačí subtransakce, které jsou v PL/pgSQL k dispozici implicitně - každý blok BEGIN/EXCEPTION/END vytváří subtransakci.