PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL - comment déterminer si une transaction est active ?

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...