如何判断交易是否有效?我希望能够执行创建保存点的SQL,无论事务当前是否处于活动状态(即,如果它不活动,我想&#34; BEGIN&#34;)< / p>
答案 0 :(得分:2)
你可以做到
begin;
savepoint foo;
&#34;开始;&#34;如果已经有交易,那将是一个无操作。
答案 1 :(得分:0)
您应该能够分辨出SQL的区别:
START TRANSACTION;
SELECT xact_start, backend_xid, state, state_change FROM pg_stat_activity;
ROLLBACK WORK;
请参见https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW
还有txid_status()
,您可以use to control transactions,但does not seem to work from within PL/pgSQL。