PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL - Wie kann festgestellt werden, ob eine Transaktion aktiv ist?

Postgres führt PL/pgSQL aus innerhalb der Transaktion. Daher können Sie Transaktionen nicht innerhalb von PL/pgSQL steuern . Der Code sieht folgendermaßen aus:

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

Also zur Beantwortung Ihrer Frage:

Wenn Sie PL/pgSQL haben Wenn Sie ATM ausführen, haben Sie Ihre Transaktion aktiv ATM ...

Natürlich können Sie einige Tricks anwenden, wie z. B. das Starten/Beenden der Arbeit über dblink oder so. aber dann können Sie select txid_current(); überprüfen über den dblink erfolgreich...