Postgres chạy PL/pgSQL bên trong giao dịch. Do đó, bạn không thể kiểm soát giao dịch từ bên trong PL/pgSQL . Mã sẽ giống như sau:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Vì vậy, trả lời câu hỏi của bạn:
Nếu bạn có PL/pgSQL đang chạy ATM, bạn có máy ATM đang hoạt động giao dịch của mình ...
Tất nhiên, bạn có thể thực hiện một số thủ thuật, chẳng hạn như bắt đầu / kết thúc công việc trên dblink hoặc như vậy. nhưng sau đó bạn có thể kiểm tra select txid_current(); qua dblink thành công ...