sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:¿cómo determinar si una transacción está activa?

Postgres ejecuta PL/pgSQL dentro de la transacción. Por lo tanto, no puede controlar la transacción desde dentro de PL/pgSQL . El código se verá así:

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

Entonces, respondiendo a tu pregunta:

Si tiene PL/pgSQL ejecutando ATM, tiene su transacción ATM activa...

Por supuesto que puedes hacer algún truco, como comenzar/finalizar el trabajo sobre dblink o tal. pero luego puedes marcar select txid_current(); sobre el dblink correctamente...