PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:come determinare se una transazione è attiva?

Postgres esegue PL/pgSQL all'interno della transazione. Quindi non puoi controllare la transazione dall'interno di PL/pgSQL . Il codice sarà simile a:

begin;
  select plpgsql_fn();
  do '/*same any plpgsql*/';
end;

Quindi rispondendo alla tua domanda:

Se hai PL/pgSQL con ATM, hai la transazione ATM attiva...

Ovviamente puoi fare qualche trucco, come iniziare/terminare il lavoro su dblink o simili. ma poi puoi controllare select txid_current(); sopra il dblink con successo...