Postgres exécute PL/pgSQL
à l'intérieur de la transaction. Ainsi, vous ne pouvez pas contrôler la transaction depuis PL/pgSQL
. Le code ressemblera à :
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Alors pour répondre à ta question :
Si vous avez PL/pgSQL
en cours d'exécution ATM, vous avez votre transaction ATM active...
Bien sûr, vous pouvez faire quelques trucs, comme commencer/terminer le travail sur dblink
ou tel. mais ensuite vous pouvez vérifier select txid_current();
sur le dblink
avec succès...